town.delve.video.finishUpload
{
"$type": "com.atproto.lexicon.schema",
"defs": {
"main": {
"description": "Finish an upload. This call is idempotent and safe to retry. On deduplication completedJobId may differ from the input jobId; poll getJobStatus with completedJobId. Probe-based validation failures surface later as JOB_STATE_FAILED from getJobStatus, not as errors from this call.",
"errors": [
{
"description": "The job ID is unknown or aged out of retention; known terminal sessions are never reported as not found.",
"name": "UploadNotFound"
},
{
"description": "The upload session expired before finalization began.",
"name": "UploadExpired"
},
{
"description": "Not all parts are recorded; the error message lists the missing part numbers.",
"name": "MissingParts"
},
{
"description": "A finish is in progress; check getUploadStatus and retry.",
"name": "UploadNotReady"
},
{
"description": "The assembled object's detected content type is not supported.",
"name": "UnsupportedContentType"
},
{
"description": "The session is known to have failed; the error carries its failure reason.",
"name": "UploadFailed"
},
{
"description": "The session is known to have been aborted.",
"name": "UploadAborted"
},
{
"description": "The service is draining or temporarily at capacity; retry later.",
"name": "ServiceOverloaded"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"jobId": {
"maxLength": 256,
"minLength": 1,
"type": "string"
}
},
"required": [
"jobId"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"completedJobId": {
"description": "The processing job to poll with getJobStatus; on deduplication this may differ from the input jobId.",
"maxLength": 256,
"minLength": 1,
"type": "string"
},
"jobStatus": {
"ref": "town.delve.video.defs#jobStatus",
"type": "ref"
}
},
"required": [
"completedJobId",
"jobStatus"
],
"type": "object"
}
},
"type": "procedure"
}
},
"id": "town.delve.video.finishUpload",
"lexicon": 1
}
Metadata
- DID
-
did:plc:qzqct2rrq4u2gmy5g3mjxske - CID
-
bafyreiemmyrlpei73ecnfjqk4v7gc2qc7o3dj4qhfdfj6hmjz4ydxesj2e - Indexed At
- 2026-09-11 20:05 UTC
- AT-URI
-
at://did:plc:qzqct2rrq4u2gmy5g3mjxske/com.atproto.lexicon.schema/town.delve.video.finishUpload
Referenced Schemas (1)
Similar Lexicons
Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.
-
Abort an upload only while it is created, releasing its quota reservation immediately. Terminal sessions are unchanged and return their terminal outcome. A finishing session returns UploadNotReady.
-
Get the authoritative status of the upload phase. Terminal states remain readable. completedJobId and jobStatus are present only for completed sessions; failureReason is present only for failed sessions.
-
Upload one part. Parts are idempotent and may be retried or re-sent while the session is created. Each expected length is derived from the upload size and part size, and Content-Length must match exactly. ETags are neveā¦
-
io.atcr.hold.completeUpload procedure
Finalize a multipart upload and move the assembled blob to its final location.
-
town.delve.video.defs not from the namespace authority