Skip to main content

Error codes

Every refusal carries a stable code. Codes never change meaning within 1.x and new ones may be added; messages may be reworded. Handle the code, show the message.

WhereYou get
In the pagecreateEditor rejects with a LettroveEmbedError (error.code, error.message, error.docsUrl); an open editor fires the error event
On your server@lettrove/node throws a LettroveApiError (code, message, status, requestId, retryAfter, docsUrl)
Over HTTPSJSON { "error": "…", "code": "…", "requestId": "…" }, and Retry-After when rate-limited

docsUrl links to the code's own row below, on the page for your major version (https://docs.lettrove.com/docs/1/api/errors#token_expired). For what to check first by what you see, read Troubleshooting.

CodeMeansDo
brand_not_foundNo brand, folder or part with that id is this person's or the project'sCheck the id
brand_read_onlyThe brand is the project's: your users use it, only you change itChange it on the project's brand page (Settings → Embed)
call_timed_outThe editor, or your provider, did not answer in timeRetry; check your network
capability_missingThe feature is not on for this projectSettings → Embed, or your plan
design_conflictThe design was saved elsewhere since it was openedIn the editor, your user chooses: the saved version, or theirs over it. Elsewhere, reopen it to get the newest
design_invalidA design document is not one Lettrove madePass the design exactly as you got it
design_not_foundNo design with that id belongs to this personCheck the designId and the user id
design_too_newA newer major version of the editor saved itOpen it with that version
editor_destroyedThe editor was removed before the call answered—
feature_unsupportedThe editor release in the frame does not have this; the message names the release that added itFollow a newer release
frame_blockedThe frame never answeredTroubleshooting
image_not_hostedAn image is not an https:// addressHost the image
image_unsupportedA file is not PNG, JPEG, GIF, WebP or a safe SVGUse one of those
key_invalidA key is wrong, revoked, from a deleted project, or does not match the token's projectCheck your keys
message_too_largeA design over 2 MB, or an image over 10 MBUse smaller images; images are links, not content
network_error@lettrove/node could not reach Lettrove, or it did not answer in time (status 0)Retry with backoff
mode_unavailableThe page asked for another mode than the project'sRemove mode, or use the right project
options_invalidAn option is wrong (test keys stop; live keys drop it)The message names the option
origin_not_allowedThe site is not allowed, or the token is for another siteAllowed sites
project_suspendedThe project is pausedResume it in Settings → Embed
protocol_mismatchYour loader and the editor share no protocolUpdate @lettrove/embed
provider_duplicateTwo providers for one name. Not given in 1.x: providers is an object, so each name appears once—
provider_missingstorage keeps a resource with you ('host') but no provider for it was givenGive the provider, e.g. 'image:upload'
provider_not_hostA provider was given for something Lettrove storesSet storage: { images: 'host' } (or designs: 'host'), or remove the provider
provider_failedYour provider threw, or answered something unusable; your message is shownCheck your provider
quota_exceededA plan limit was reachedYour plan, or wait for the next period
rate_limitedToo many requests for this keyWait Retry-After seconds
request_invalidA request body is not as documented; the message names the fieldFix the request
service_unavailableLettrove is briefly unavailableRetry with backoff
signature_invalidverifyWebhook: wrong secret, a changed body, or older than five minutesUse the raw body and the current secret
token_expiredThe token ran outRenewed automatically through getToken
token_invalidThe token is missing, altered, or from before a key was revokedCheck your token route
user_erasedYou asked to erase this person—
workspace_suspendedLettrove has suspended the embed for your workspacesupport@lettrove.com

Messages may be reworded between releases; codes never change meaning. Handle codes, show messages.