Error codes: media, scenes, programs, apps
The codes of the areas Media-Library, Composition, Scheduling, App-Catalog, Marketplace, App-Runtime, and Advertising.
17 minute readAPIUpdated: 10/25/2026
On this page
Before you start
- For
- Anyone who creates, uploads, or schedules content through the API, books advertising, or submits apps.
- Prerequisite
- know the error format — see The error format
The codes of the Media-Library, Composition, Scheduling, App-Catalog, Marketplace, App-Runtime, Feeds, and Advertising areas: media and folders, scenes and templates, playlists and programs, app releases, installations, the runtime of installed apps, the catalog of news sources, and advertising.
How to read the tables
Read the tables like this: Code is the value of the code field in the error body. Your logic switches on it, never on message. Meaning and Typical trigger classify the case. HTTP is the status actually sent. Expected reaction is your client’s response, drawn from a fixed vocabulary that is the same on all seven error-code pages: “check credentials” (401), “check permission or package” (402, 403), “correct the input” (400, 413, 415, 422), “reload, resend” (version conflicts), “do not retry, check the operation” (404, 409, 410, 426), “wait (Retry-After)” (429), and “retry later, report the trace ID if it recurs” (5xx).
The codes
Media and folders (Media-Library)
Media, folders, uploads, dynamic collections, as well as the places of third-party storage and their folder syncs. The three upload codes Upload.MimeTypeNotAllowed, Upload.QuotaExceeded, and Upload.Sha256Mismatch are the ones a script runs into when uploading. The CLI ends a rejected upload with exit 11 — see JSON output and exit codes.
| Code | Meaning | Typical trigger | HTTP | Expected reaction |
|---|---|---|---|---|
Asset.NotFound |
Media item not found | Unknown media ID | 404 | do not retry, check the operation |
Asset.InUse |
Media item in use | Deleting a media item that is in use | 409 | do not retry, check the operation |
Asset.NotInTrash |
Media item is not in the trash | Permanently deleting a media item that is still active | 409 | do not retry, check the operation |
Asset.InvalidStatusTransition |
Status change not permitted | Reprocessing a media item that is currently being uploaded or processed | 409 | do not retry, check the operation |
AssetVariant.NotFound |
Variant does not exist | URL request for a variant that was never created | 404 | do not retry, check the operation |
Folder.NotFound |
Folder not found | Unknown folder ID | 404 | do not retry, check the operation |
Folder.MaxDepthExceeded |
Maximum folder depth exceeded | Nesting too deep | 422 | correct the input |
Folder.CycleDetected |
Folder cycle detected | Moving into its own subtree | 422 | correct the input |
Folder.Protected |
Brand folder is write-protected | Renaming, moving, or deleting in the system folder “Brand marks”. Reading, searching, and using in scenes remain unrestricted — only writing is closed, so that a deleted logo cannot break the branding. It is maintained through the brand settings | 409 | do not retry, check the operation |
SmartBucket.NotFound |
Dynamic collection not found | Unknown collection ID | 404 | do not retry, check the operation |
Upload.MimeTypeNotAllowed |
File type not allowed | Disallowed upload format | 422 | correct the input |
Upload.QuotaExceeded |
Storage limit exhausted | Storage limit reached | 402 | check permission or package |
Upload.Sha256Mismatch |
Checksum does not match | Uploaded data differs from the sha256 |
422 | correct the input |
Place.NotFound |
Place not found | Access to a place that this organization does not have. Foreign and non-existent answer the same — a foreign connection ID must not be confirmed as existing by a 403 | 404 | do not retry, check the operation |
Place.NotBrowsable |
Place cannot be browsed | There is no read adapter for the provider of this place. Not a rejection of the connection: it stays, names the origin of imported media, and becomes readable later with an adapter | 409 | do not retry, check the operation |
Place.AccessDenied |
Folder blocked for this account | The provider denies exactly this folder although the authorization is valid. Explicitly not a 409 — a new round trip changes nothing | 403 | check permission or package |
PlaceItem.NotFound |
Entry vanished from the provider | File or folder was deleted or moved at the provider | 404 | do not retry, check the operation |
PlaceItem.NotImportable |
Entry cannot be imported | Importing a folder or a file without a size: a folder is not a media item, and without an announced length a stream cannot be written to object storage | 422 | correct the input |
SyncedFolder.NotFound |
Folder sync not found | Reading, running, or deleting under an unknown or foreign ID | 404 | do not retry, check the operation |
SyncedFolder.AlreadyExists |
Folder is already being synced | A second sync on the same pair of connection and remote folder. Each would advance the other’s pointer into the change stream, and they would alternately miss changes | 409 | do not retry, check the operation |
SyncedFolder.RemoteNotAFolder |
Source is not a folder | Setting up a sync on a single file — the import exists for that, one click away | 422 | correct the input |
Scenes and templates (Composition)
Renderer sessions, scenes, layout templates, widgets, and integrity. Version conflicts when saving go through Conflict.OptimisticLock, not through a code of this area.
| Code | Meaning | Typical trigger | HTTP | Expected reaction |
|---|---|---|---|---|
RendererSession.NotFound |
Renderer session not found | Unknown session ID | 404 | do not retry, check the operation |
RendererSession.AlreadyRevoked |
Renderer session already revoked | Duplicate revocation | 409 | do not retry, check the operation |
Scene.NotFound |
Scene not found | Unknown scene ID | 404 | do not retry, check the operation |
Scene.PublishValidationFailed |
Publishing invalid | Scene does not meet the rules for publishing | 422 | correct the input |
Scene.PublishBlocked |
Publishing blocked | Open integrity problems | 409 | do not retry, check the operation |
Scene.Blocked |
Scene blocked by block cascade | New assignment (program, override, playlist) of a scene that uses an app that the booked package no longer covers. Listed here and not under Scheduling because the SCENE is blocked. 422 instead of 403 because two ways lead out: upgrade the package or take the app out of the scene | 422 | correct the input |
Scene.InUse |
Scene in use | Deleting a scene that is in use | 409 | do not retry, check the operation |
SceneVersion.NotFound |
Scene version not found | Unknown version | 404 | do not retry, check the operation |
SceneVersion.ThumbnailNotFound |
No thumbnail for the version | Fetching the thumbnail of a version for which none is stored — a regular case, not a defect: versions from before the automatic capture have none, and the caller falls back to its own preview | 404 | do not retry, check the operation |
SceneVersion.RenderJobNotFound |
Render job unknown | Fetching a job that never existed, whose ID does not belong to this version, or that has dropped out of the queue — and the version has no thumbnail either from which a finished run could be read | 404 | do not retry, check the operation |
SceneVersion.RenderJobNotCompleted |
Render job still without image | Fetching the image of a job that is still in the queue, is running right now, or has failed — the state is in the detail and says whether waiting is worthwhile | 409 | retry later for queued/running, not for failed |
SceneTemplate.NotFound |
Scene template not found | Unknown template ID | 404 | do not retry, check the operation |
LayoutTemplate.NotFound |
Layout template not found | Unknown template ID | 404 | do not retry, check the operation |
LayoutTemplate.InUse |
Layout template in use | Deleting a template that is in use | 409 | do not retry, check the operation |
LayoutTemplate.BuiltInImmutable |
System template immutable | Change to a built-in template | 409 | do not retry, check the operation |
IntegrityIssue.NotFound |
Integrity finding not found | Unknown finding ID | 404 | do not retry, check the operation |
Widget.ConfigSchemaInvalid |
Widget configuration invalid | Configuration violates the schema | 422 | correct the input |
Playlists and programs (Scheduling)
Playlists, programs, and the assignment on the display. Schedule.ContentNotFound covers scene, playlist, and media item in one code.
| Code | Meaning | Typical trigger | HTTP | Expected reaction |
|---|---|---|---|---|
Playlist.NotFound |
Playlist not found | Unknown playlist ID | 404 | do not retry, check the operation |
Playlist.Empty |
Playlist empty | Use without entries | 422 | correct the input |
Playlist.InUse |
Playlist in use | Deleting a playlist that is in use | 409 | do not retry, check the operation |
Playlist.SceneNotFound |
Scene of the playlist missing | Entry points to an unknown scene | 422 | correct the input |
Playlist.AssetNotFound |
Media item of the playlist missing | Entry points to an unknown media item | 422 | correct the input |
Playlist.AutoSourceItemsForbidden |
Automatic playlist with entries | Folder/tag source with a maintained sequence | 422 | correct the input |
Playlist.SourceNotAuto |
Source not automatic | Source preview for a manual playlist | 422 | correct the input |
Schedule.NotFound |
Program not found | Unknown program ID | 404 | do not retry, check the operation |
Schedule.ContentNotFound |
Program content missing | Reference to an unknown scene, playlist, or media item | 422 | correct the input |
Schedule.InvalidRecurrence |
Invalid repeat | Malformed repeat rule of a program entry | 422 | correct the input |
Schedule.Assigned |
Program is assigned | Deleting a program that is still running on a device | 409 | do not retry, check the operation |
Schedule.ItemNotFound |
Program entry not found | Unknown entry ID or entry of a different program | 404 | do not retry, check the operation |
Schedule.ItemLimitReached |
Too many program entries | Cap of 200 entries per program reached | 422 | correct the input |
PlayerProgram.NotFound |
No assignment on the device | Action on a device without an assignment entry | 404 | do not retry, check the operation |
Player.GroupManaged |
Display is managed by a video wall | Direct assignment to a display that is a member of a video wall — the assignment goes to the video wall | 409 | do not retry, check the operation |
App catalog (App-Catalog)
Releases, manifest, the import from the registry, and channels, the operator side of the catalog. A version arrives in the catalog as a signed artifact from the registry. If the artifact is not in order, the import answers with AppRelease.RegistryImportFailed (422), and without access to the registry with AppRelease.RegistryUnavailable (503). No single person promotes to stable: one person requests, a second confirms, and the AppReleaseApproval.* codes belong to this path. How a version is signed and which calls take it through the channels is described under Signing and the path into the catalog.
| Code | Meaning | Typical trigger | HTTP | Expected reaction |
|---|---|---|---|---|
AppRelease.NotFound |
Release not found | Unknown release ID | 404 | do not retry, check the operation |
AppRelease.VersionAlreadyExists |
Version already exists | The version is already in the catalog with different bytes | 409 | do not retry, check the operation |
AppRelease.AlreadyRetired |
Release already retired | Duplicate retirement | 409 | do not retry, check the operation |
Manifest.ValidationFailed |
Manifest invalid | Manifest violates the schema | 422 | correct the input |
Channel.InvalidTransition |
Invalid channel transition | Disallowed channel change (no skipping) | 409 | do not retry, check the operation |
AppStatusOverride.NotFound |
Special rule not found | Withdrawing a rule that does not exist for this pair of organization and app | 404 | do not retry, check the operation |
AppRelease.RegistryArtifactNotFound |
Version not in the registry | Importing a version whose tag does not exist in the registry | 404 | do not retry, check the operation |
AppRelease.RegistryImportFailed |
Artifact rejected | Digest, checksums, structure, manifest, or signature of the artifact do not match | 422 | correct the input |
AppRelease.RegistryUnavailable |
Registry unreachable | No access to the registry or no response from it | 503 | retry later, report the trace ID if it recurs |
AppCollection.NotFound |
Collection not found | Changing a store collection whose ID does not exist | 404 | do not retry, check the operation |
AppCollection.KeyTaken |
ID taken | Creating a collection with an ID that already exists | 409 | do not retry, check the operation |
AppCollection.UnknownApp |
App not in the catalog | A collection names an app that the catalog does not carry. details.appIds names them |
422 | correct the input |
AppCollection.OrderMismatch |
Order incomplete | The new order does not name every collection exactly once | 422 | correct the input |
AppRelease.SecondPersonRequired |
Second person required | Promoting to stable without a reason while the platform requires a second person for apps (releaseApproval.apps). With a reason, a request is created instead that a second person approves |
409 | do not retry, check the operation |
AppRelease.ReviewBlocked |
Review checklist blocks | “New in this version” is missing in the required language, or a text for customers contains a semicolon or a blocked word. details.blocks names the items |
409 | do not retry, check the operation |
AppRelease.BelowCurrentStable |
Not above the current version | A version is meant to go to stable but is not above the current one. Moving to stable only goes upward. Going back is possible only through the rollback (restore-stable). details.version and details.currentStableVersion name both |
409 | do not retry, check the operation |
AppRelease.ArtifactInUse |
Bytes of the version cannot be deleted | Deleting the bytes of a version that is in canary, beta, or stable, that an installation, a pin, or a draft names, or that an open request points to. details names the reason |
409 | do not retry, check the operation |
Marketplace
Installation and grants from the organization’s point of view, plus requests to the Owners and the deletion of the data of an uninstalled app.
| Code | Meaning | Typical trigger | HTTP | Expected reaction |
|---|---|---|---|---|
App.NotFound |
App not found | Unknown app ID | 404 | do not retry, check the operation |
App.NotVisible |
App not visible | No access to the app | 403 | check permission or package |
Grant.AlreadyInstalled |
Already installed | Duplicate installation | 409 | do not retry, check the operation |
App.NotInstalled |
App not installed | Action without an installation | 409 | do not retry, check the operation |
Grant.PendingReacceptance |
Renewed consent pending | Use before consent is given again | 409 | do not retry, check the operation |
App.ManifestHashMismatch |
Manifest hash differs | Consent to a different manifest | 409 | do not retry, check the operation |
App.UpdateUnavailable |
No such update | Switching to a version that is not above the installed one, accepting or declining without a pending update, declining after the deadline has passed. details.reason names the case |
409 | do not retry, check the operation |
OwnerRequest.NotApplicable |
Nothing to decide | Request to the Owners for an app that is already installed, for an update that is not pending, or from an account that may decide on its own. details.reason names installed, no-pending-update, or can-decide |
409 | do not retry, check the operation |
AppData.NotDeletable |
Data cannot be deleted | Scheduling the deletion of the data of an installed app, of an app without data, or of a deletion that is already scheduled. details.reason names installed, no-data, or already-scheduled |
409 | do not retry, check the operation |
AppData.DeletionNotFound |
No scheduled deletion | Canceling a deletion that is no longer scheduled | 404 | do not retry, check the operation |
App runtime (App-Runtime)
Fetch cache and scheduled jobs of installed apps. Fetch.Failed is a deliberate 502 among the domain codes: an external source did not respond in a usable way.
| Code | Meaning | Typical trigger | HTTP | Expected reaction |
|---|---|---|---|---|
FetcherCache.NotFound |
Cache entry not found | Unknown entry in the fetch cache | 404 | do not retry, check the operation |
FetchKey.Invalid |
Fetch key invalid | Unknown or malformed fetch key | 422 | correct the input |
Fetch.Failed |
Data fetch failed | Error when fetching from an external source | 502 | retry later, report the trace ID if it recurs |
JobSchedule.NotFound |
Job schedule not found | Unknown schedule ID | 404 | do not retry, check the operation |
Job.CronInvalid |
Schedule expression invalid | Malformed schedule expression | 422 | correct the input |
News sources (Feeds)
The catalog of news sources, which the operator maintains and the news apps read.
| Code | Meaning | Typical trigger | HTTP | Expected reaction |
|---|---|---|---|---|
FeedSource.NotFound |
News source not found | Changing a source that is not in the catalog. details.sourceId names it |
404 | do not retry, check the operation |
Advertising
Advertisers, ad campaigns, bookings, creatives, ad space, audience, participation in the ad network, and the revenue statements of the locations. A foreign ID and an invented ID answer alike with 404. This way, your organization never learns whether an ad campaign of another organization or of the ad network exists. Without the capability advertisingDirect, creating and changing in your own advertising business answer with Billing.FeatureNotEntitled (403). Reading, pausing, ending, and archiving stay open so that running ad campaigns can wind down.
| Code | Meaning | Typical trigger | HTTP | Expected reaction |
|---|---|---|---|---|
Advertiser.NotFound |
Advertiser not found | Unknown ID or an advertiser of another organization | 404 | do not retry, check the operation |
Advertiser.Archived |
Advertiser archived | A new ad campaign, booking, or creative, booking or resuming an ad campaign, or changing a booking (except pausing) for an archived advertiser | 409 | do not retry, check the operation |
AdCampaign.NotFound |
Ad campaign not found | Unknown ID, an ad campaign of another organization, or one of the ad network that does not reach your displays | 404 | do not retry, check the operation |
AdCampaign.InvalidPeriod |
Period reversed | The ad campaign starts after its end | 422 | correct the input |
AdCampaign.StatusTransitionInvalid |
Transition not allowed | Going back to draft, or resuming an ended ad campaign | 409 | do not retry, check the operation |
AdCampaign.Cancelled |
Ad campaign ended | Changing an ended ad campaign or its bookings | 409 | do not retry, check the operation |
AdCampaign.LinesOutsidePeriod |
Bookings outside the period | The new period would cut off bookings. details.bookingLineIds names them |
409 | do not retry, check the operation |
AdCampaign.StartsInPast |
Start is before today | An ad campaign is booked with a start before today (in its time zone), or a booked one moves its start there. A draft may start earlier. details.startsOn and details.today name both days |
422 | correct the input |
BookingLine.NotFound |
Booking not found | Unknown ID or a booking of another organization | 404 | do not retry, check the operation |
BookingLine.OutsideCampaignPeriod |
Booking outside the ad campaign | The period of the booking does not lie entirely within that of its ad campaign | 422 | correct the input |
BookingLine.CreativeNotUsable |
Creative not usable | Creative unknown, archived, or from another advertiser. details.reason names the case |
422 | correct the input |
BookingLine.CapacityExceeded |
Not enough slots | The frequency of a booking does not fit the free slots on at least one display. details.bookingLineId and details.bookingLineName name the booking (when booking an ad campaign, the one that does not fit), details.displays the display, name, and free slots in tenths |
409 | do not retry, check the operation |
BookingLine.AlreadyStarted |
Booking has started | Removing a booking that may already have been played. A booking that has started is paused | 409 | do not retry, check the operation |
BookingLine.StartsInPast |
Start is before today | In a booked ad campaign, a new booking starts before today, or an existing one moves its start there. details.startsOn and details.today name both days |
422 | correct the input |
Creative.NotFound |
Creative not found | Unknown ID or a creative of another organization | 404 | do not retry, check the operation |
Creative.AssetNotUsable |
Media item unsuitable as a creative | Media item unknown, not yet fully processed, or neither image nor video | 422 | correct the input |
Creative.MandatoryTextRequired |
Mandatory text missing | Approving a creative for medicines or medical devices without a mandatory text | 422 | correct the input |
Creative.MandatoryTextNotConfirmed |
Mandatory text not confirmed | Approval without the confirmation that the mandatory text is in the creative and legible | 422 | correct the input |
Creative.RejectionNoteRequired |
Note missing | Rejecting a creative without a note for the advertiser | 422 | correct the input |
Creative.Archived |
Creative archived | Changing, approving, or replacing an archived creative | 409 | do not retry, check the operation |
Creative.FileChanged |
File replaced | The media item behind the creative is no longer the file it was created with | 409 | do not retry, check the operation |
Creative.UploadMissing |
Uploaded file missing | There is no file under the announced checksum | 422 | correct the input |
Creative.UploadInvalid |
Uploaded file does not match | Size differs, over 200 MB, checksum does not match, or the file is not a readable image or video | 422 | correct the input |
DisplayInventory.PlayerNotFound |
Display not found | Ad space of an unknown or decommissioned display | 404 | do not retry, check the operation |
AudienceProfile.NotFound |
No audience maintained | Fetching the audience of a location for which none has been stored yet | 404 | do not retry, check the operation |
AudienceProfile.LocationNotFound |
Location not found | Audience of an unknown location | 404 | do not retry, check the operation |
AudienceProfile.InvalidPeriod |
Measurement period reversed | The measurement ends before it begins | 422 | correct the input |
NetworkParticipation.ConsentDecisionRequired |
Decision on the credit note missing | Switching on participation in the ad network without selfBillingConsent |
422 | correct the input |
RevenueStatement.NotFound |
Revenue statement not found | Unknown ID or the statement of another organization | 404 | do not retry, check the operation |
RevenueStatement.StatusConflict |
Action does not fit the status | Approving, issuing, or settling a statement that is not in the right status for it | 409 | do not retry, check the operation |
RevenueStatement.Blocked |
Credit note not yet possible | The location’s tax status, tax ID, or billing profile is missing, or its consent to the credit note procedure. The detail names all reasons | 409 | do not retry, check the operation |
RevenueStatement.OffsetInvoiceUnavailable |
No invoice to offset against | No invoice of the location’s own is open for the month | 409 | do not retry, check the operation |
RevenueStatement.MonthNotEnded |
Month still running | Allocating the revenue of a month that is not over yet | 422 | correct the input |
RevenueStatement.IssuerProfileMissing |
Sender master data missing | Issuing a credit note while Szenera’s sender master data is not maintained | 409 | do not retry, check the operation |
Count
This page lists 120 codes. Together with the other six error-code pages this gives 493 domain codes (4xx) and 119 server errors (5xx), 612 codes in all — the complete catalog of the platform.