at.happyproto.registry.retryVersion
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Copy a version's blobs into the registry again, after an earlier copy failed. Only the registry's own account may call this. The copy is enqueued for any indexed version and fetches only what is not held yet, so an available version whose optional images failed can be retried. For a version deleted at its source, the copy keeps whatever blobs the publisher's PDS still serves, so instances that installed it can keep loading it by CID, but the version stays deletedAtSource and is never made available. For such a version, a blob that cannot be fetched, whether it is missing or the fetch failed transiently, is recorded in `failed` and not retried automatically; call retryVersion again.",
"errors": [
{
"description": "The caller's identity could not be determined, so there is no repo to write to.",
"name": "AuthRequired"
},
{
"description": "The registry has no identity configured. An operator problem, not a caller's.",
"name": "NotConfigured"
},
{
"description": "The input breaks a rule the registry applies, so it would refuse the records. The message names the field.",
"name": "InvalidRecord"
},
{
"description": "A record could not be written to the caller's repo. Records written before the failure stay, and the same call can be made again.",
"name": "Upstream"
},
{
"description": "No version of that project is indexed at that version string.",
"name": "VersionNotFound"
},
{
"description": "Only the registry's own account may retry a copy.",
"name": "Forbidden"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"did": {
"description": "The publisher.",
"format": "did",
"type": "string"
},
"name": {
"description": "The project's name, which is the record key of its software.release.project: 1 to 64 lowercase letters, digits and interior hyphens.",
"maxLength": 64,
"minLength": 1,
"type": "string"
},
"version": {
"description": "A semver version without build metadata, with an optional lowercase prerelease, such as `1.2.0` or `1.2.0-beta.1`.",
"maxLength": 64,
"minLength": 1,
"type": "string"
}
},
"required": [
"did",
"name",
"version"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"availability": {
"description": "The version's availability when the retry was asked for. The copy runs afterwards, so this does not yet reflect it.",
"knownValues": [
"pending",
"available",
"deletedAtSource"
],
"type": "string"
}
},
"required": [
"availability"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "at.happyproto.registry.retryVersion",
"lexicon": 1
}
Metadata
- DID
-
did:plc:mo7vq4jbioxwafy5zkcc3eux - CID
-
bafyreidkghpr3mg4pazddyjvhehbecsufnmh44ax2zkwaiu6kwdgkg65xi - Indexed At
- 2026-10-26 21:34 UTC
- AT-URI
-
at://did:plc:mo7vq4jbioxwafy5zkcc3eux/com.atproto.lexicon.schema/at.happyproto.registry.retryVersion
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
at.happyproto.registry.retryRelease procedure
Copy a pending release's artifact again. A release is listed only once the registry has copied its artifact, which it tries once when it first indexes the release; this is how the release's publisher tries again after t…
-
The bytes of a blob the registry has copied, served from its own copy and never redirected to the publisher, so a version stays installable after its publisher deletes it. Name the blob either by version and kind or by …