at.happyproto.registry.withdrawRelease

Delete a release record the caller published. This is how a publisher withdraws a release: it deletes from the caller's own repo as them, where com.atproto.repo.deleteRecord sent through a HappyView instance goes wherever that instance's proxy routing points. The release stays indexed and served by exact version, marked withdrawn, and the version can never be published again.

Repository @happyproto.at did:plc:mo7vq4jbioxwafy5zkcc3eux namespace authority
Details · procedure
Kindprocedure
Authorityregistry.happyproto.at
Indexed

Procedure

procedure · POST

Input

application/json

slug

requiredstring

The package slug.

  • maxLength: 128

version

requiredstring

The version to withdraw, as published.

  • maxLength: 256

Output

application/json

uri

requiredstring · at-uri

The release record deleted.

Errors

AuthRequired

The caller's identity could not be determined, so there is no repo to delete from.

InvalidRequest

The slug or version could not name a release.

ReleaseNotFound

That version is not published from the caller's account, or was already withdrawn.

Upstream

The record could not be deleted from the caller's repo.

NotConfigured

The registry has no identity configured.

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • That the owner of a repository withdrew a version of a package it publishes: the dev.knotless.release of the same key in the same account, which itself never changes, stays there to read, but is no longer its package's latest.

  • One release by exact version. Served whatever its status, including `deleted`: that is the left-pad protection the registry exists for.

  • Delete a repository record, or ensure it doesn't exist. Requires auth, implemented by PDS.

  • Publish a version of a plugin to the caller's repo. Writes a software.release.manifest carrying the artifact, the changelog as a site.standard.document when one is given, the software.release.version, and the channel named by track, moved to the new version, in that order. A record is written only once everything it points at exists, so a failure part-way leaves no dangling reference. Calling again with the same input after such a failure finishes the release rather than refusing it.

  • Every release of a package, newest-indexed first, including withdrawn ones flagged `deleted` — a client resolving an exact version needs to see that it exists.