vcon-server

Problem types

Every refusal vcon-server answers with, as an RFC 9457 problem document whose type is one of these pages.

Every refusal is an application/problem+json document with type, title and status:

{
  "type": "https://vcon-server.com/problems/conflict",
  "title": "Another vCon holds the uuid",
  "status": 409
}

Act on type (or status), never on title's wording. No problem repeats any part of the request, so a problem can be logged anywhere.

StatusTypeTitle
422ambiguous-formThe body is both signed and encrypted
503at-capacityToo many tool calls are running
503audit-failedThe audit record could not be written
400bad-bodyThe body could not be read
422bad-criticalcritical or must_support is not a list of names
422bad-gzipThe body is marked gzip but is not
400bad-path-uuidThe path's uuid is not in RFC 9562 text form
400bad-path-versionThe path's version is not a version id
422bad-payloadThe signed payload cannot be read
400bad-queryThe query is not one this route takes
422bad-scopesA tenant key cannot hold these scopes
422bad-uuidThe uuid is not in RFC 9562 text form
409conflictAnother vCon holds the uuid
500damagedA stored version is damaged
422duplicate-memberAn object repeats a member
403forbiddenThe key does not allow this
410goneThe vCon was deleted or purged
409holds-vconsThe tenant holds vCons; removing them needs force
409immutableA signed or encrypted vCon is not replaced
500internalThe server failed
422invalid-argumentsThe arguments do not fit the tool
422invalid-bodyThe body is not one this route takes
503limit-reachedThe tenant key must be rotated
503master-key-limitThe master key must be rotated
422missing-created-atThe vCon has no created_at
422missing-uuidThe vCon has no uuid
409name-takenAnother tenant has the name
422no-formThe body is in no vCon form
422not-a-vconThe body is not a vCon this server can read
409not-deletedThe vCon is not deleted
404not-foundNo vCon has the uuid
422not-jsonThe body is not one JSON object
422path-uuid-mismatchThe body's uuid is not the one in the path
412precondition-failedIf-Match does not name the current version
428precondition-requiredIf-Match must name the current version
429rate-limitedToo many tool calls from this key
408timeoutThe body did not arrive in time
422too-deepThe body nests too deeply
413too-largeThe body is over the size limit
401unauthorizedA valid bearer key is needed
503unavailableThe service cannot answer now
409under-holdA vCon of the tenant is under a legal hold
404unknown-keyNo key has the id
404unknown-tenantNo tenant has the id
404unknown-toolNo tool has the name
422unsupported-extensionAn extension the vCon needs is not supported
415unsupported-media-typeThis media type is not taken
422uuid-mismatchA signature names another uuid