Warnings and Errors

View as Markdown

If an error or warning occurs, we’ll return either an error or warning object in the JSON response. These can also be viewed in the API Reference documentation.

Example Warning

A response may contain one or more warnings. Check out the list of warning names below to learn more about the possible values of warning_name and their meaning. Here is an example of the JSON structure of the response:

1{
2 "warnings": [
3 {
4 "warning_msg": "This SignatureRequest will be placed on hold until the user confirms their email address.",
5 "warning_name": "unconfirmed"
6 }
7 ]
8}

Warning Names

List and details of possible warnings that can be returned.

WarningDescription
unconfirmedThe email address of the account making the Signature Request has not been confirmed. The Signature Request will be placed on hold until it is confirmed.
custom_field_value_too_longThe value provided for a custom field is too long. The custom field will extend beyond the limits of its container and may not display the way you intended.
custom_field_values_too_longA summary of all values for custom fields that are too long
parameter_ignoredOne of the request parameters was ignored because it wasn’t being used correctly
non_pdf_text_tagsText Tags were enabled for a file that is not a PDF, which may result in imprecise positioning.
form_fields_overlapTwo or more of the form fields specified are overlapping, which may prevent signers from completing the document.
form_fields_placementForm fields must be placed within the document.
deprecated_parameterA parameter was provided which we no longer support. The value will be ignored.
parameter_conflictTwo parameters have been provided which are in conflict. One parameter will be ignored.
parameter_missingAn essential parameter was missing from the request and has been set to a default value.
partial_successThe operation succeeded, but at least one non-essential part of the request failed.
test_mode_onlyA parameter was provided which will affect your app in test mode but will not affect it in production. Upgrade your account to use in production.
empty_valueA non-essential parameter was provided but it does not have a value. The parameter will be ignored.
add_memberA warning was generated while attempting to add a user to your team.
parameter_invalidA parameter was provided with an invalid value. The parameter will be modified or ignored.
oauth_grants_revokedOAuth user access grants have been revoked from this app due to a scope change.
cc_disabledThe option to email a copy to the other signers and anyone CC’d is disabled for given account.
reassign_unsupportedA template with signer reassignment was used on an endpoint that does not support it (e.g. bulk send with template). The template will still be used, but without signer reassignment enabled.
duplicate_template_idsTemplates can only be used once in a signature request. A duplicated template ids was passed in the request.
value_too_preciseThe value for the parameter had a level of precision too high (e.g. expires_at have seconds level of granularity, instead of hour for time)

Example Error

A response may only contain one error at most. Check out the list of error names below to learn more about the possible values of error_name and their meaning. Here is an example of the JSON structure of the response (or error POSTed to your callback url):

1{
2 "error": {
3 "error_msg": "Unauthorized user.",
4 "error_name": "unauthorized"
5 }
6}

Error Names

List and details of possible errors that can be returned. Each entry includes the HTTP status code, the likely cause, recommended remediation, and whether the request is safe to retry.

Retryable values:

  • No — retrying the same request will not succeed; fix the request or state first.
  • Yes — the request can be retried as-is after waiting.
  • Conditional — retry only after resolving the underlying state (and with backoff).
ErrorHTTP CodeDescriptionCauseRemediationRetryableBackoff
bad_request400The request contained invalid or malformed parameters.A parameter failed validation, or the request body was malformed.Inspect error_msg and error_path, correct the offending parameter, and resend.No
unauthorized401The credentials supplied are missing or invalid.Missing, malformed, or invalid API key or OAuth access token.Verify the API key or OAuth token and the Authorization header, then retry.No
payment_required402The account must be credited or upgraded to perform this action.The action requires a paid plan, additional quota, or API credits.Upgrade the plan or add the required credits/quota, then retry.No
forbidden403The action is not allowed for these credentials or in the current context.The authenticated account lacks access to the resource or operation.Confirm the account has access to the resource and the required permissions.No
not_found404Nothing matches the requested resource.The resource id does not exist or is not visible to this account.Verify the id and that the resource belongs to the authenticated account.No
method_not_supported405The HTTP method is not supported for this endpoint.The request used a verb the endpoint does not accept.Use the HTTP method documented for the endpoint.No
conflict409The request was well-formed but conflicts with the current state.The target resource is in a state incompatible with the request (e.g. a signature request is still being set up).Wait briefly and retry, or listen for a callback event confirming the resource is ready.Conditional
deleted410The request was cancelled or deleted.The resource has been cancelled or removed and is no longer available.Do not retry; the resource is permanently gone.No
unprocessable_entity422The request was understood but the target entity cannot be processed.The resource is still being processed, or it is in an error state.If the resource is still processing, wait and retry; if it is in an error state, recreate/resend it instead of retrying.ConditionalIf still processing, retry with exponential backoff; if in an error state, do not retry.
exceeded_rate429Your account’s API request rate limit has been exceeded.Too many requests were sent within the rate-limit window for this request type.Pace requests using the X-RateLimit-* response headers and retry after the window resets.YesHonor X-Ratelimit-Reset (Unix epoch); otherwise exponential backoff with jitter. No Retry-After header is sent.
max_faxes429Too many fax transmissions are currently pending or transmitting.The account has reached the limit of concurrent in-flight fax transmissions.Wait for outstanding transmissions to complete, then retry.YesRetry with exponential backoff once pending transmissions clear.
unavailable503The service is temporarily unavailable.A downstream dependency or the service itself is temporarily unavailable.Retry later with exponential backoff.YesRetry later with exponential backoff and jitter.
maintenance503The request could not be completed because the site is under maintenance.The API is in a scheduled maintenance window.Retry once the maintenance window ends.YesRetry later with exponential backoff.
invalid_recipient400The recipient (fax number or email address) is invalid.A recipient value did not pass validation.Correct the recipient value and resend.No
invalid_reminder400The signature request reminder was invalid.A reminder was attempted against an ineligible request (e.g. embedded, closed, or expired).Only send reminders for eligible (non-embedded, open) signature requests.No
team_invite_failed403The team invitation could not be completed.The invitee already belongs to a team, or the invite is otherwise not permitted.Confirm the invitee is not already on a team before inviting.No
signature_request_cancel_failed400The signature request could not be cancelled.The caller is not the requester, or the request is already fully executed/closed.Only the requester can cancel, and only before the request is fully executed.No
signature_request_remove_failed400Access to the signature request could not be removed.The signature request has not yet been fully executed, so access cannot be revoked.Wait until all parties have signed, or call /signature_request/cancel to cancel incomplete requests instead.No
signature_request_expired400, 403The signature request has expired.The operation targets a request whose expiration has passed. Most endpoints return 400; final-copy/download endpoints return 403.The request can no longer be acted upon; create a new signature request.No
unknown500An unexpected error occurred.An unhandled server-side error, or a status code without a more specific error_name.Retry transient failures; if it persists, open a support ticket with the request details.ConditionalFor transient 5xx, retry with exponential backoff; otherwise do not retry.

Asynchronous Error Events

Some errors are not returned as an HTTP response. Instead they are delivered asynchronously to your callback URL as a webhook, where the error name arrives as event.event_type. Inspect event.event_metadata.event_message in the callback payload for details. See Events and Callbacks for how to consume these.

Event (event_type)DescriptionCauseRemediationRetryable
signature_request_invalidAsynchronous error while processing a signature request.A signature request could not be processed (e.g. invalid tags, fields, or merge data).Inspect event.event_metadata.event_message, correct the request, and resend.Conditional
template_errorAsynchronous error while creating a template.Template file processing failed (e.g. unsupported or corrupt file).Recreate the template with a valid file; check status in the API dashboard.Conditional
file_errorAsynchronous error while processing an uploaded file.A file attached to a request could not be processed.Resend the request with a supported, non-corrupt file.Conditional
sign_url_invalidAn embedded signing URL has expired or become invalid.The embedded sign_url is no longer valid (e.g. expired).Generate a fresh embedded sign_url via the embedded sign URL endpoint.Yes
unknown_errorAn unspecified asynchronous processing error occurred.An unexpected error occurred while processing the request asynchronously.Check the request status in the API dashboard; retry or contact support if it persists.Conditional

Machine-readable error catalog

For programmatic use (SDKs, AI agents, retry logic), this catalog is published as structured extensions in the OpenAPI specification, so you can branch on errors without scraping this page:

  • x-error-codes — a root map keyed by error_name, where each entry carries http_status, summary, cause, remediation, retryable, backoff, and category. Mirrors the Error Names table above.
  • x-error-events — the asynchronous webhook errors above, keyed by event_type, each with delivery: webhook (no http_status).
  • The error_name field on the ErrorResponseError schema is a closed enum of the canonical HTTP error names.

Canonical spec: openapi.yaml.