# NoProviders error

**URL:** https://forum.duniter.org/t/noproviders-error/11554
**Category:** Duniter-v2
**Created:** [13 September 2023 15:28 UTC](https://forum.duniter.org/t/noproviders-error/11554 "2023-09-13T15:28:47Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [13 September 2023 15:28 UTC](https://forum.duniter.org/t/noproviders-error/11554/1 "2023-09-13T15:28:47Z")

</div>

Encore une petite friction avec la mise à jour v0.9.42. Le système de référence `providers/sufficients/consumers` a été largement modifié. La partie qui pose problème est que `request_distance_evaluation` utilise `reserve` qui nécessite un provider.

```rust
assert_ok!(Distance::request_distance_evaluation(
    frame_system::RawOrigin::Signed(AccountKeyring::Eve.to_account_id()).into(),
));

```

retourne donc l’erreur

```rust
---- test_validate_identity_when_claim stdout ----
thread 'test_validate_identity_when_claim' panicked at runtime/gdev/tests/integration_tests.rs:334:13:
Expected Ok(_). Got Err(
    DispatchErrorWithPostInfo {
        post_info: PostDispatchInfo {
            actual_weight: None,
            pays_fee: Pays::Yes,
        },
        error: NoProviders,
    },
)

```

À investiguer…

* * *

[edit] plus de détails :

- `request_distance_evaluation`
- `do_request_distance_evaluation`
- `reserve`
- `try_mutate_account_handling_dust`
- `try_mutate_account`
- `did_consume = false` puisque initialement `account.reserved` est à zéro
- `does_consume = true` puisque l’on cherche à augmenter “reserved”
- `inc_consumers` puisqu’on passe d’un compte sans consumer à un compte avec
- `providers = 0` puisque personne ne provide pour ce compte
- `NoProviders`

Après réflexion, c’est compréhensible : l’identité créée n’est que `sufficient`, elle ne `provide` pas l’existence du compte. Il doit manquer un `inc_providers` au moment de la création du compte (garanti par le dépôt existentiel).

* * *

[edit] c’est bon, en fait en réglant le bug du `total_issuance` ([Total issuance vs monetary mass](https://forum.duniter.org/t/total-issuance-vs-monetary-mass/11360)) j’en ai révélé un autre sur l’initialisation des `providers` au genesis par la pallet `duniter-account`. Il a suffi de s’inspirer de ce qui était fait dans la pallet `balances`.
