Skip to main content
This page lists the error messages returned by the Suki APIs. All error messages are returned in JSON format as shown in the example below.
JSON
{
  "code": 16,
  "message": "invalid sdp token",
  "details": []
}
The code field in the JSON body is a numeric status code. Suki maps it to the HTTP status on the response. See Status code to HTTP mapping for the full mapping. Each table row lists an error id: a stable name you can use in client code. In responses, that value appears in the message field, either as the full string or as a prefix (for example invalid_sdp_token or invalid_sdp_token: …). Match on the id exactly or by prefix when you handle errors in your integration.

Common errors

These are some common errors that can occur across all Suki REST APIs.
Error idCodeDescription
invalid_sdp_token401Missing, expired, or invalid sdp_suki_token
permission_denied403General authorization failure
insufficient_scope403method not allowed due to insufficient scope. Need: sdp.write
sbac_denied403Organization not accessible to partner (SBAC)
provider_not_registered401Clinician not registered via /auth/register
provider_user_inactive412Provider user is not ACTIVATED/LICENSE_PENDING
missing_sdp_provider_id_header400sdp_provider_id header required (single_auth)
invalid_sdp_provider_id400sdp_provider_id fails partner regex
request_cancelled499Request cancelled by client
request_timeout504Request timed out
internal_server_error500Unexpected server error

Ambient

These are some common errors that can occur while implementing the Ambient workflow using the REST APIs.
Error idCodeDescription
invalid_ambient_id_format400ambient_session_id is not a valid UUID on create
invalid_request400Request body failed validation
invalid_end_session_request400End session request failed validation
invalid_cancel_session_request400Cancel session request failed validation
invalid_context_request400Context body failed validation (specialty, role, visit type, etc.)
invalid_encryption_hash400Encryption hash must be exactly 64 characters
ambient_session_id_required400ambient_session_id is required (recording)
invalid_ambient_session_id404Ambient session ID not found
ambient_session_not_found404Ambient session not found on end
session_wrong_state412Session is not in CREATED state (includes current status)
session_job_type_unsupported412Session job type does not support EndSession
session_in_progress409Concurrent session conflict (for example session in progress on WEB)
transcripts_retention_exceeded404Transcripts older than 7 days are not available
content_retention_exceeded404Content for session older than 7 days is not available
encounter_content_retention_exceeded404Content for encounter older than 7 days is not available
structured_data_retention_exceeded404Structured data for session older than 7 days is not available
encounter_structured_data_retention_exceeded404Structured data for encounter older than 7 days is not available
invalid_encounter_id404Encounter ID not found
no_appointment_found404No appointment found for emr_encounter_id
missing_emr_encounter_id400emr_encounter_id is required (list encounter notes)
missing_user_id400user_id missing from token (list encounter notes)
missing_organization_id400organization_id missing from token (list encounter notes)
error_creating_session500Error creating ambient session
error_ending_session500Internal error ending session
error_streaming_audio500Internal error during /ws/stream
client_disconnected499WebSocket client disconnected during stream
unknown_request_type400Unknown message type on /ws/stream
error_extracting_ambient_session_id400Ambient session ID missing from WebSocket/metadata
error_adding_context500Internal error adding/updating session context
error_processing_context500Internal error processing context payload
error_generating_presigned_url500Internal error generating offline audio upload URL
error_fetching_recording500Internal error fetching session recording
client_metrics_log_failed500Client metrics could not be logged
error_resolving_encounter500Internal error resolving encounter (list notes)
error_fetching_encounter_notes500Internal error fetching encounter notes

Form Filling

These are some common errors that can occur while implementing the Form Filling workflow using the REST APIs.
Error idCodeDescription
invalid_ambient_id_format400ambient_session_id is not a valid UUID on create
invalid_request400Create form-filling session request failed validation
invalid_end_form_filling_session_request400End form-filling session request failed validation
invalid_context_request400Form-filling context body failed validation
form_filling_values_empty400form_filling.values must not be empty
invalid_form_template_id400Form template ID invalid
invalid_target_emr400target_emr value not supported
invalid_ambient_session_id404Form-filling session ID not found
ambient_session_not_found404Session not found on end
session_not_form_filling412Session is not a form-filling job
session_wrong_state412Session is not in CREATED state
template_id_required412At least one template ID is required
form_metadata_missing_ids412Each form metadata entry must include a template ID or form ID
form_metadata_read_failed412Could not read form metadata in session job input
form_metadata_invalid412Invalid form metadata in session job input
structured_data_retention_exceeded404Structured data older than 7 days is not available
medical_form_not_found404Medical form not found
error_creating_session500Error creating form-filling session
error_ending_session500Internal error ending form-filling session
error_adding_context500Internal error adding/updating form-filling context

Dictation

These are some common errors that can occur while implementing the Dictation workflow using the REST APIs.
Error idCodeDescription
invalid_transcription_session_id_format400transcription_session_id is not a valid UUID
invalid_request400Transcription request failed validation
error_extracting_transcription_session_id400Transcription session ID missing from WebSocket/metadata
invalid_transcription_session_id404Transcription session ID not found
transcription_session_not_found500No transcription session found for given ID
session_job_type_unsupported412Session job type does not support EndTranscriptionSession
transcription_session_completed412Transcription session is already completed
transcription_session_not_accepting412Transcription session is not accepting new speech sessions
error_creating_transcription_session500Error creating transcription session
error_ending_transcription_session500Internal error ending transcription session
error_creating_transcription_stream500Internal error creating /ws/transcribe stream
error_receiving_audio500Internal error receiving audio on transcription stream
error_sending_audio500Internal error sending audio on transcription stream
error_ending_transcription500Internal error ending transcription stream
error_reading_transcripts500Internal error reading transcripts from transcription service
client_disconnected499WebSocket client disconnected during transcribe
unknown_request_type400Unknown message type on /ws/transcribe

Feedback

These are some common errors that can occur while implementing the Feedback workflow using the REST APIs.

Ambient feedback

Error idCodeDescription
invalid_request400Feedback request failed validation
ambient_session_id_required400ambient_session_id is required
invalid_uuid_format400ambient_session_id is not a valid UUID
feedback_required400feedback object is required
rating_feedback_required400ratingFeedback is required
invalid_entity400Only CONTENT entity is supported for ambient feedback
invalid_rating_range400minRating must be less than maxRating
rating_below_min400rating must be >= minRating
rating_above_max400rating must be <= maxRating
negative_min_rating400minRating must be >= 0
comments_too_long400qualitativeComments exceeds 2000 characters
failed_get_session500Failed to get ambient session for feedback
failed_submit_feedback500Failed to submit feedback to feedback service

Form-filling feedback

Error idCodeDescription
invalid_request400Feedback request failed validation
ambient_session_id_required400ambient_session_id is required
invalid_uuid_format400ambient_session_id is not a valid UUID
payload_required400payload is required
feedback_required400feedback object is required
rating_feedback_required400ratingFeedback is required
feedback_metadata_nil400Feedback metadata is nil
form_id_required400form_id is required in feedback metadata
invalid_entity400Only AMBIENT_GENERATED_MEDICAL_FORM entity is supported
invalid_rating_range400minRating must be less than maxRating
session_not_form_filling412Session is not a form-filling job
medical_form_not_found404Medical form not found for given form_id
failed_get_session500Failed to get form-filling session for feedback
failed_submit_feedback500Failed to submit feedback to feedback service

Notification

These are some common errors that can occur while implementing the Notification workflow using the REST APIs.

Success payload

FieldDescription
status"success"
session_idSession that completed
encounter_idParent encounter ID
sessionsOrdered list of session IDs in encounter
_linksHATEOAS links to status, transcripts, content, structured-data

Failure payload

Error idCodeDescription
ERROR_CODE_UNSPECIFIEDFailure reason unknown or not classified
ERROR_CODE_NOTIFICATION_GENERATION_FAILURENotification payload generation failed
ERROR_CODE_TRANSCRIPTIONSwagger example only, not in proto enum today
FieldDescription
status"failure"
session_idSession that failed
encounter_idParent encounter ID
error_codeMachine-readable error code (see table above)
error_detailHuman-readable failure details from job output

Preferences

These are some common errors that can occur while implementing the Preferences workflow using the REST APIs.
Error idCodeDescription
invalid_request400Preferences request failed validation
update_paths_required400update_paths field mask is required
preference_required400preference object is required
personalization_preference_required400personalization_preference is required
verbosity_or_section_format_required400At least one of verbosity or section_format must be provided
invalid_preferences_format400Preferences could not be converted to internal format
invalid_verbosity400Invalid verbosity enum value
invalid_section_format400Invalid section format enum value
error_updating_preferences500Internal error updating user preferences via ms-preferences

Status code to HTTP mapping

This table maps the status names returned by the Suki APIs to the corresponding HTTP status codes.
Status nameHTTP
InvalidArgument400
Unauthenticated401
PermissionDenied403
NotFound404
AlreadyExists409
Aborted409
FailedPrecondition412
Unimplemented501
Unavailable503
Internal500
Canceled499
DeadlineExceeded504
Last modified on June 16, 2026