1. Syncode
Syncode
  • Syncode
    • Conventions
    • Response Schemas
    • Error Taxonomy
    • Resource Model
    • Permission Model
    • Cross-Cutting Concerns
    • Security
    • Collab-Plane
    • Execution-Plane
    • AI-Plane
  • SynCode Control Plane API
    • Auth
      • Create a new account
      • Authenticate and get tokens
      • Refresh access token
      • Invalidate refresh token
      • Change current user's password
      • Request password reset email
      • Reset password with token
    • Users
      • Get current user profile
      • Update current user profile
      • Soft-delete account
      • Get public profile of another user
      • Upload avatar (presigned URL)
      • Get usage quotas and limits
      • Get current active room (for reconnection)
      • Get time-series training statistics
    • Rooms
      • Participants
        • List all participants in a room
        • Update participant (role, mute)
        • Kick a participant from the room
      • Control
        • Advance room phase
        • Select or change the problem
        • Update room settings
        • Lock code editor, run, and submit
        • Unlock code editor, run, and submit
        • Pause the coding timer
        • Resume the coding timer
        • Request a role swap (peer mode)
        • Accept or decline a role swap request
      • Media
        • Generate LiveKit access token
        • Record participant's recording consent
        • Start session recording
        • Stop session recording
      • AI
        • Send a message to AI interviewer
        • Poll AI message result
        • Get AI conversation history
        • Request a targeted hint
        • Get hint result
        • Request code review
        • Get review result
        • Get cross-session weakness tracking
      • StaticAnalysis
        • Request static analysis
        • Get analysis result
      • Feedback
        • Submit peer evaluation
        • Get all feedback for this room
        • Get my submitted feedback
      • Create a new room
      • List rooms for current user
      • Get room details
      • Destroy a room (host only)
      • Join a room via room code
      • Leave a room
      • Lookup room by invite code
      • Execute code (interactive run)
      • Submit code against test cases
      • List past runs in this room
      • List past submissions in this room
    • Problems
      • List and search problems
      • Create a problem (admin)
      • List all available tags
      • Get problem details
      • Update a problem (admin)
      • Delete a problem (admin)
    • Bookmarks
      • List bookmarked problems
      • Bookmark a problem
      • Remove bookmark
    • Execution
      • Get execution result (single run)
      • Get submission status and aggregated results
    • Sessions
      • List my session history
      • Get session details
      • Soft-delete a session
      • Get training report
      • Get session event timeline
      • Get code snapshots
      • Get recording download URL
      • Get peer feedback for this session
      • Get whiteboard export
      • Get AI conversation history
      • Compare multiple session reports
    • Matchmaking
      • Enter the matchmaking queue
      • Cancel matchmaking
      • Get current match status
      • Accept a proposed match
      • Decline a proposed match
    • Admin
      • System overview stats
      • List all users
      • Get user details (admin view)
      • Update user (ban, role change)
      • List all rooms
      • Force-close a room
      • Query audit logs
    • Health
      • Deep health check
    • Schemas
      • RoomStatus
      • CreateDocumentRequest
      • RoomRole
      • CreateDocumentResponse
      • RoomMode
      • DestroyDocumentResponse
      • SupportedLanguage
      • KickUserRequest
      • Difficulty
      • KickUserResponse
      • UserRole
      • LockEditorRequest
      • ErrorResponse
      • LockEditorResponse
      • Pagination
      • SnapshotReadyPayload
      • UserProfile
      • UserDisconnectedPayload
      • PublicProfile
      • CallbackAckResponse
      • RoomConfig
      • RoomParticipantSummary
      • RoomSummary
      • RoomDetail
      • RoomPreview
      • ProblemSummary
      • ProblemDetail
      • ProblemExample
      • TestCase
      • TagInfo
      • AiMessage
      • WeaknessEntry
      • PeerFeedbackRatings
      • PeerFeedbackEntry
      • SessionSummary
      • SessionDetail
      • SessionParticipant
      • SessionEvent
      • CodeSnapshot
      • Evidence
      • ReportDimension
      • AdminDashboard
      • AdminUserEntry
      • AdminUserDetail
      • AdminRoomEntry
      • AuditLogEntry
      • HealthResponse
      • MatchOpponent
  • SynCode Collab Plane API
    • Documents
      • Create a Yjs document
      • Destroy a Yjs document
      • Kick a user from the document
      • Toggle editor lock
    • Health
      • Health check
    • Callbacks
      • [Callback] Snapshot ready
      • [Callback] User disconnected
    • Schemas
      • CreateDocumentRequest
      • CreateDocumentResponse
      • DestroyDocumentResponse
      • KickUserRequest
      • KickUserResponse
      • SnapshotReadyPayload
      • LockEditorRequest
      • UserDisconnectedPayload
      • LockEditorResponse
      • CallbackAckResponse
      • ErrorResponse
  1. Syncode

Error Taxonomy

All error responses include a machine-readable code in UPPER_SNAKE_CASE.

AUTH Errors#

CodeHTTPWhen
AUTH_INVALID_CREDENTIALS401Wrong email/username or password
AUTH_TOKEN_EXPIRED401Access or refresh token expired
AUTH_TOKEN_REVOKED401Refresh token invalidated
AUTH_EMAIL_TAKEN409Email already registered
AUTH_USERNAME_TAKEN409Username already taken

USER Errors#

CodeHTTPWhen
USER_NOT_FOUND404Invalid user ID
USER_USERNAME_TAKEN409Username conflict on profile update
USER_BANNED403Banned user attempts action

ROOM Errors#

CodeHTTPWhen
ROOM_NOT_FOUND404Invalid roomId or roomCode
ROOM_FULL409Join attempt at capacity
ROOM_ALREADY_JOINED409Double join
ROOM_FINISHED409Action on completed room
ROOM_INVALID_TRANSITION409Invalid phase transition
ROOM_INVALID_CODE400Malformed or expired invite code
ROOM_NOT_PARTICIPANT403User hasn't joined this room
ROOM_PERMISSION_DENIED403Role lacks required capability
ROOM_EDITOR_LOCKED409Edit/run/submit while locked
ROOM_EDITOR_NOT_LOCKED409Unlock when not locked
ROOM_NOT_AI_MODE409AI action in peer-mode room
ROOM_NOT_PEER_MODE409Peer action in AI-mode room

ROLE_SWAP Errors#

CodeHTTPWhen
ROLE_SWAP_NOT_FOUND404Invalid swap request ID
ROLE_SWAP_EXPIRED409Accept/decline after 30s timeout

PARTICIPANT Errors#

CodeHTTPWhen
PARTICIPANT_NOT_FOUND404Target user not in room
PARTICIPANT_CANNOT_CHANGE_ROLE409Role change during restricted phase

PROBLEM Errors#

CodeHTTPWhen
PROBLEM_NOT_FOUND404Invalid problem ID
PROBLEM_DUPLICATE_TITLE409Title already exists

EXECUTION Errors#

CodeHTTPWhen
EXECUTION_JOB_NOT_FOUND404Invalid jobId or expired
EXECUTION_RATE_LIMIT429Too many runs in window
EXECUTION_SERVICE_UNAVAILABLE503Circuit breaker open
EXECUTION_SERVICE_TIMEOUT504Circuit breaker timeout

SUBMISSION Errors#

CodeHTTPWhen
SUBMISSION_NOT_FOUND404Invalid submissionId or expired
SUBMISSION_RATE_LIMIT429Too many submissions

AI Errors#

CodeHTTPWhen
AI_HINT_RATE_LIMIT429Too many hint requests
AI_MESSAGE_RATE_LIMIT429Too many AI messages
AI_SERVICE_UNAVAILABLE503AI circuit breaker open

FEEDBACK Errors#

CodeHTTPWhen
FEEDBACK_ALREADY_SUBMITTED409Duplicate feedback
FEEDBACK_ROOM_NOT_FINISHED409Room not in wrapup/finished

SESSION Errors#

CodeHTTPWhen
SESSION_NOT_FOUND404Invalid session ID
SESSION_NOT_PARTICIPANT403User not a participant
SESSION_RECORDING_NOT_FOUND404No recording exists
SESSION_WHITEBOARD_NOT_FOUND404No whiteboard export
SESSION_AI_MESSAGES_NOT_FOUND404Not an AI-mode session
SESSION_REPORT_NOT_READY404Report not yet generated

MATCHMAKING Errors#

CodeHTTPWhen
MATCH_ALREADY_SEARCHING409Already in queue
MATCH_NOT_FOUND404Invalid match ID
MATCH_EXPIRED409Accept/decline after timeout

RECORDING Errors#

CodeHTTPWhen
RECORDING_ALREADY_ACTIVE409Already recording
RECORDING_NOT_ACTIVE409No active recording
RECORDING_CONSENT_MISSING409Not all participants consented

ANALYSIS Errors#

CodeHTTPWhen
ANALYSIS_JOB_NOT_FOUND404Invalid analysis job ID

COLLAB Errors (Internal)#

These codes are used by the collab-plane's internal HTTP API (service-to-service only, not exposed to frontends).
CodeHTTPWhen
COLLAB_DOCUMENT_NOT_FOUND404No Yjs document exists for the given roomId
COLLAB_DOCUMENT_ALREADY_EXISTS409Document already initialized for this room
COLLAB_INVALID_REQUEST400Missing or malformed request body
COLLAB_INTERNAL_ERROR500Unexpected collab-plane error

SYSTEM Errors#

CodeHTTPWhen
VALIDATION_FAILED400Request body fails validation
UNAUTHORIZED401Missing or malformed auth
FORBIDDEN403Insufficient global permissions
RATE_LIMIT_EXCEEDED429Global rate limit
INTERNAL_ERROR500Unexpected server error
Cross-cutting: UNAUTHORIZED, FORBIDDEN, RATE_LIMIT_EXCEEDED, and INTERNAL_ERROR can occur on any authenticated endpoint and are not listed per-endpoint.
Modified at 2026-03-12 05:29:50
Previous
Response Schemas
Next
Resource Model
Built with