Skip to content

Reference

Error codes

Every error code Maskflare's gateway, proxy and browser DLP return: the HTTP status, what it means and how to fix it. Each problem response links its page here.

Refusals are RFC 9457 problem documents (application/problem+json) with a stable code, a detail that says how to fix it and a type linking the code's page below. Codes that end in :something (a browser upload's file extension) are listed without the suffix.

CodeStatusWhereMeaning
action_key_unavailable503Gateway mode, Proxy modeA hash or format-preserving rule needs a key this deployment lacks.
api_key_purpose_not_allowed403Gateway mode, Proxy modeThe key's purpose (gateway, redaction, edm) doesn't cover this endpoint.
api_key_purpose_unsupported403Gateway mode, Proxy modeThe key has a purpose this service doesn't know.
batch_upload_unsupported422Gateway mode, Proxy modeResumable batch uploads (`/uploads`) can't be inspected.
browser_dlp_invalid_multipart403Browser DLPThe upload's multipart body couldn't be read.
browser_dlp_secret403Browser DLPThe message held a credential-shaped secret (API key, token, private key).
browser_dlp_unavailable503Browser DLPThe message couldn't be inspected, so it wasn't sent.
browser_dlp_uninspectable_upload403Browser DLPThe app uploads this kind of file where Maskflare can't check it (the suffix is the file's extension).
browser_dlp_unparseable_form403Browser DLPThe app's form body wasn't readable.
browser_dlp_unparseable_json403Browser DLPThe app's message wasn't readable JSON.
browser_dlp_unparseable_proto403Browser DLPThe app's binary message wasn't readable.
browser_dlp_unreadable_proto403Browser DLPThe app's message text wasn't valid UTF-8.
browser_dlp_unreadable_text_upload403Browser DLPA text file wasn't valid text.
browser_dlp_unsupported_content_type403Browser DLPThe app sent a body type Maskflare can't inspect.
browser_dlp_unsupported_upload403Browser DLPMaskflare can't check this kind of file.
browser_dlp_upload_missing_file403Browser DLPAn upload carried no file part.
ca_unavailable503Proxy modeThe organization's certificate authority couldn't issue a certificate.
console_access_required403Platform APIMembers without a console role (end users) can't use the console or its API.
destination_not_allowed403Proxy modeThis proxy only carries AI traffic and the host isn't an inspected one.
deterministic_masking_unavailable503Gateway mode, Proxy modeDeterministic masking (embeddings, batch) isn't configured on this deployment.
document_pii_blocked403Gateway mode, Proxy modeAn attached document holds data your organization doesn't allow (`categories`).
document_unreadable403Gateway mode, Proxy modeAn attached document couldn't be read to scan it (encrypted or damaged).
edm_chunk_too_large413Gateway modeAn EDM upload chunk is over the limit.
edm_key_event_unavailable503Gateway modeThe EDM key couldn't be issued.
edm_unavailable503Gateway mode, Proxy modeYour Exact Data Match datasets couldn't be loaded in time.
egress_port_denied403Proxy modeThe proxy only connects to allowed ports.
embeddings_body_unreadable422Gateway mode, Proxy modeAn embeddings or batch body isn't the JSON the provider documents.
file_analysis_pending503Gateway mode, Proxy modeAn attached file is still being analysed.
file_blocked403Gateway mode, Proxy modeThe Sandbox found an attached file unsafe under your organization's policy.
file_too_large413Gateway mode, Proxy modeAn attached file is over the Sandbox's size limit.
file_unreadable403Gateway mode, Proxy modeAn attached file couldn't be read to check it.
https_tunnel_required403Proxy modeA plain-HTTP proxy request named an inspected host. Only CONNECT tunnels are authenticated and inspected.
idp_unavailable503Platform APIThe identity provider couldn't be reached.
image_blocked403Gateway mode, Proxy mode, Browser DLPYour organization doesn't allow images.
image_redaction_failed403Gateway mode, Proxy modeText in an image matched your rules and couldn't be covered.
image_unreadable403Gateway mode, Proxy modeAn image couldn't be read to scan its text.
invalid_api_key401Gateway mode, Proxy modeThe Maskflare API key is unknown, revoked or expired.
invalid_content_length400Proxy modeThe Content-Length header doesn't describe the body.
invalid_request400Gateway modeA /v1/mask or /v1/unmask body didn't match the API.
invalid_subject_tenant400Gateway mode, Proxy mode`X-MaskFlare-Subject-Tenant` was repeated or malformed.
invalid_token401Platform APIThe access token is expired, malformed or from another issuer.
masking_module_disabled403Gateway mode, Proxy modeMasking is turned off for your organization, and Maskflare never forwards AI traffic unmasked.
masking_rules_unavailable503Gateway mode, Proxy modeThe masking rules couldn't be loaded or applied.
masking_unavailable503Gateway mode, Proxy modeMasking failed and your organization blocks rather than forward unmasked.
mcp_destination_not_allowed403Gateway modeThe MCP server resolves to a private or internal address.
mcp_server_unreachable502Gateway modeThe MCP server didn't answer.
method_not_allowed405Gateway modeThis route doesn't take that HTTP method.
misdirected_request421Proxy modeA request inside a proxy tunnel named another host than the CONNECT.
missing_api_key401Gateway mode, Proxy modeThe request carried no Maskflare API key. (Proxy mode answers 407 with `Proxy-Authenticate`, so clients that wait for a challenge send it.)
missing_model400Gateway modeA live (voice) session was opened without `?model=`.
missing_provider_key401Gateway mode, Proxy modeThe connection is pass-through and the request carried no provider key.
missing_token401Platform APIA platform API call had no access token.
model_not_allowed403Gateway mode, Proxy modeThe model isn't on the environment's allowed list.
module_disabled403Gateway mode, Proxy mode, Platform APIThe feature this endpoint belongs to is turned off for your organization.
org_ambiguous400Platform APIYou belong to several organizations and the request didn't say which one.
org_forbidden403Platform APIThe organization in `X-Maskflare-Organization` isn't one of yours.
org_missing403Platform APIThe token names no organization you belong to.
organization_inactive403Gateway mode, Proxy mode, Platform APIThe organization the key belongs to is suspended.
platform_unavailable503Gateway mode, Proxy modeMaskflare's control plane couldn't be reached.
provider_blocked403Gateway mode, Proxy modeYour organization blocks this AI provider.
provider_key_unreadable403Gateway mode, Proxy modeThe provider key stored on the connection can't be decrypted.
provider_not_enabled403Gateway mode, Proxy modeThe environment has no enabled connection for this AI provider.
proxy_auth_required403Proxy modeA connection to an inspected AI host reached the proxy without an authenticated tunnel.
proxy_state_invalid503Proxy modeThe proxy lost track of the tunnel.
rate_limited429Gateway mode, Proxy modeThe environment's requests-per-minute limit was reached.
ratelimit_unavailable503Gateway mode, Proxy modeThe rate limiter couldn't be reached, and Maskflare fails closed.
redaction_key_cannot_forward403Gateway mode, Proxy modeA redaction key was used on a provider route. Redaction keys only call /v1/mask and /v1/unmask.
request_inspection_failed503Proxy modeThe proxy couldn't inspect the request, so it didn't forward it.
request_too_large413Gateway mode, Proxy modeThe request body is over the environment's size limit.
response_too_large502Gateway mode, Proxy modeA response Maskflare must read whole (a block rule or re-hydration applies) is over 16 MiB.
role_forbidden403Platform APIYour role in the organization doesn't allow this action.
sensitive_data_blocked403Gateway mode, Proxy mode, Browser DLPA block rule matched. `rule_keys` names the rules; no value is ever returned.
sensitive_data_volume403Gateway mode, Proxy mode, Browser DLPThe request went past a volume threshold (`thresholds`: what was counted, the limit and how many it carried).
service_forbidden403Platform APIThe calling service isn't allowed on this internal endpoint.
tls_inspection_required403Proxy modeThe proxy can't guarantee it inspects this tunnel, so it refuses it.
token_input_unsupported422Gateway mode, Proxy modeEmbeddings input given as token ids can't be masked.
too_many_tokens400Gateway mode/v1/unmask was asked for more than 100 items.
unknown_mcp_server404Gateway modeNo MCP server with that name is registered in the key's environment.
unknown_provider404Gateway modeThe gateway path names no provider Maskflare supports.
unsupported_charset415Gateway modeThe body's charset isn't UTF-8, UTF-16 or Latin-1.
unsupported_content_encoding415Gateway mode, Proxy modeThe body uses a coding Maskflare can't inspect.
unsupported_path_encoding400Gateway mode, Proxy modeThe provider path holds characters Maskflare refuses to guess about (percent-escapes, `;`, `@`, `+`, ...).
upstream_read_failed502Gateway modeThe provider's response broke off.
upstream_unavailable502Gateway modeThe live session couldn't be opened with the provider.
upstream_unreachable502Gateway modeMaskflare couldn't connect to the AI provider.
voice_options_need_deterministic400Gateway mode`spoken` or `spans` was sent without deterministic masking.