This document summarizes issues discovered during API documentation testing that should be addressed in the cloud repo.
Location: cloud/services/ingest/openapi.yaml line 3393-3396
Issue: The JobStatusResponse schema defines status enum as:
enum: [waiting_to_dispatch, pending, in_progress, completed, error, cancelled]But the actual GetJobStatus implementation (line 369 in job.go) directly casts the internal state:
Status: ingest.JobStatusResponseStatus(jobEntity.Status)This means the API returns raw internal states like success, queued_limited, executing, etc. — none of which are in the OpenAPI enum.
Recommendation: Either:
- Update OpenAPI to list all actual internal states returned, OR
- Transform the status in
GetJobStatususingtoFilterStatus()likeGetJobDetaildoes
The latter would make both endpoints consistent, but would be a breaking change for any clients relying on the current behavior.
| Endpoint | Status for successful job | Includes outputs? |
|---|---|---|
GET /api/jobs/{id} |
completed |
✅ Yes |
GET /api/job/{id}/status |
success |
❌ No |
Current behavior:
/api/jobs/{id}usestoFilterStatus()which mapsStateSuccess→completed/api/job/{id}/statusreturns rawjobEntity.Statusdirectly
The API docs use /api/job/{id}/status for polling (lighter weight) and check for success status.
For documentation purposes, here's how internal states map to user-friendly statuses:
submittedqueued_limitedqueued_waitingallocatedpreparingpending_execution
executingexecuted
success
errornon_retryable_errorerroringlost
cancelledcancel_requestedcancel_pendingcancelling_preparing
If choosing to document actual behavior (option 1), update JobStatusResponse.status enum to:
status:
type: string
enum:
# Pending states
- submitted
- queued_limited
- queued_waiting
- allocated
- preparing
- pending_execution
# In progress states
- executing
- executed
# Terminal states
- success
- error
- non_retryable_error
- erroring
- lost
- cancelled
- cancel_requested
- cancel_pending
- cancelling_preparing
description: |
Raw internal job state. For user-friendly status values, use GET /api/jobs/{id} instead
which returns: pending, in_progress, completed, failed, cancelled.cloud/services/ingest/openapi.yaml- OpenAPI speccloud/services/ingest/server/implementation/job.go- GetJobStatus, GetJobDetail implementationscloud/common/jobstate/state.go- State definitions and groupings