We have a paraID locked after a completed Crowdloan, the auction has concluded in a no-winning state, and the parathread is still owned by the account manager.

Any explanation as to why the deposit is still locked?

  • 1
    This may be a bug in the runtime and it's being investigated
    – rob
    Sep 10, 2022 at 17:01
  • Hey @rob, following up on this. Is that confirmed a bug? I'm still unable to deregister the paraID
    – Mo Elshami
    Dec 15, 2022 at 13:00
  • has this been fixed? we have a registered paraID that is not showing up and unable to deregister as well. Apr 6, 2023 at 20:51

1 Answer 1


Yes this issue has been fixed with this PR:

You will want to remove the lock:

/// Remove a manager lock from a para. This will allow the manager of a
/// previously locked para to deregister or swap a para without using governance.
/// Can only be called by the Root origin or the parachain.
#[pallet::weight(T::DbWeight::get().reads_writes(1, 1))]
pub fn remove_lock(origin: OriginFor<T>, para: ParaId) -> DispatchResult {
    Self::ensure_root_or_para(origin, para)?;
    <Self as Registrar>::remove_lock(para);

So you can then call the deregister and get your deposit back:

/// Deregister a Para Id, freeing all data and returning any deposit.
/// The caller must be Root, the `para` owner, or the `para` itself. The para must be a parathread.
#[pallet::weight(<T as Config>::WeightInfo::deregister())]
pub fn deregister(origin: OriginFor<T>, id: ParaId) -> DispatchResult {
    Self::ensure_root_para_or_owner(origin, id)?;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.