Skip to content

Auto-renewal gets disabled after failed payment attempts #9548

@ipapandinas

Description

@ipapandinas

Is there an existing issue?

  • I have searched the existing issues

Experiencing problems? Have you tried our Stack Exchange first?

  • This is not a support question.

Description of bug

When auto-renewal fails due to insufficient funds, the system disables the auto-renewal setting entirely and requires manual re-enablement. However, the documentation states:

"Even if an auto-renewal attempt fails, the auto-renewal setting remains active for subsequent sales. This means the setting persists across multiple periods once you've configured auto-renewal."

The actual behavior contradicts the documentation. This could create governance overhead to re-enable auto-renewal and risks missing renewal windows. We expected auto-renewal to remain enabled and retry on the next cycle as documented, not disable itself after payment failures.

The behavior likely stems from the broker pallet logic when checking Sovereign account funds, where failed renewal attempts return None disabling the auto-renewal setting.

let Some(payer) = T::SovereignAccountOf::maybe_convert(record.task) else {
Self::deposit_event(Event::<T>::AutoRenewalFailed {
core: record.core,
payer: None,
});
return None
};

Is this disable-on-failure behavior intentional, or should it match the documented behavior where auto-renewal persists through payment failures?

Steps to reproduce

  1. Enable auto-renewal on a core
  2. Ensure Sovereign account has insufficient funds for renewal
  3. Wait for the renewal attempt at the beginning of the new sales period
  4. Observe auto-renewal setting becomes disabled

Metadata

Metadata

Assignees

No one assigned

    Labels

    C1-mentorA task where a mentor is available. Please indicate in the issue who the mentor could be.C2-good-first-issueA task for a first time contributor to become familiar with the Polkadot-SDK.I2-bugThe node fails to follow expected behavior.T14-system_parachainsThis PR/Issue is related to system parachains.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions