Sume 에이전트 실행 오류: action_run_in_progress 등
스케줄 실행이 이미 진행 중인데 reject를 보내면 409 action_run_in_progress, ID가 내 Agent Completion 실행이 아니면 404 agent_run_not_found입니다.

409 action_run_in_progress는 Sume 스케줄에 이미 진행 중인 실행이 있는데 트리거 요청이 on_active_run: "reject"로 설정되어 있어서 실행이 기록되지 않았다는 뜻입니다. 404 agent_run_not_found는 /v1/agent-runs에 보낸 ID가 알 수 없는 ID이거나, 다른 계정의 것이거나, Action 또는 Format 실행 ID라는 뜻입니다. Action과 Format 실행 ID는 이 경로에서 절대 해석되지 않습니다.
오류 코드는 Scheduled의 API 트리거와 실행과 결과 페이지, 그리고 Agent Completions에서 가져왔으며 2026-09-26에 확인했습니다. 공통 오류 봉투와 요청 한도는 Sume API 오류와 요청 한도에 정리돼 있습니다.
스케줄 실행을 시작할 때 어떤 오류가 반환되나요?
트리거인 POST /v1/actions/{action_id}/runs나 그 {handle}/{slug} 버니티 경로를 호출하려면 api_trigger_enabled: true인 active 스케줄과, actions:read와 actions:write가 있는 키가 필요합니다. 429는 백오프하라는 뜻입니다.
| 상태 | 코드 | 원인 | 해결 |
|---|---|---|---|
400 | output_schema_invalid | 엄격한 부분집합을 벗어난 스키마. 위반한 규칙은 details.violations[]에 하나씩 나옴 | 스키마 수정 |
400 | invalid_request | input이 객체가 아니거나 속성 64개 또는 2 MiB 초과, 지출 상한이 0보다 큰 값이나 null이 아님, webhook_url이 공개 HTTPS가 아님, 지시문이 비어 있음 | 요청 또는 Action 수정 |
401 | unauthorized | 키가 없거나, 형식이 잘못됐거나, 폐기됨 | 헤더 확인, 새 키 발급 |
403 | insufficient_scope | 키에 actions:write가 없거나 서비스 계정 키임 | 대시보드에서 새 키 발급 |
404 | action_not_found | 알 수 없거나 보관된 Action, 또는 다른 워크스페이스의 Action | action_id 확인 |
409 | action_api_trigger_disabled | api_trigger_enabled가 false | API 호출 트리거 켜기 |
409 | action_inactive | Action이 inactive 상태 | Action을 Active로 설정 |
409 | action_run_in_progress | 실행이 진행 중인데 on_active_run이 reject였음 | 나중에 재시도하거나 skip 사용 |
409 | idempotency_conflict | 같은 키를 다른 페이로드로 재사용 | 새 키 사용 |
503 | studio_agent_upstream_unavailable | Agents 컨트롤 플레인이 설정되지 않았거나, 도달할 수 없거나, JSON이 아닌 응답을 반환함 | 재시도, 계속되면 지원팀에 문의 |
잘못 읽기 쉬운 트리거 응답은 무엇인가요?
HTTP 상태가 아니라 영수증의 status로 분기하세요.
202는 접수되어 시작됐다는 뜻입니다.200은 멱등성 재전송(idempotency_hit: true)이거나, 기본값인on_active_run: "skip"에서skip_reason: "previous_run_active"로 건너뛴 실행이라는 뜻입니다. 에이전트 실행이 겹치지 않게 하기를 참고하세요.- 본문의 알 수 없는 최상위 필드는 거부되지 않고 조용히 버려집니다.
output_schema와response_format을 함께 보내면400 invalid_request입니다. 같은 키를 다른output_schema로 다시 보내면409 idempotency_conflict입니다.503은 이 라우트가 선언한 OpenAPI 응답에 없으므로, 생성된 클라이언트가 이를 모델링하지 않을 수 있습니다. 이 응답은retryable: false라고 알려 주지만, 문서는 제한된 재시도는 합리적이라고 설명합니다.
Agent Completions는 어떤 오류를 반환하나요?
instruction과 messages 중 정확히 하나만 보내고, generation_spend_cap_usd는 항상 보내세요(기본값이 없습니다). 모든 completion은 새 스레드에서 실행되므로 assistant 턴은 빼세요. Sume는 실행을 만들 때 첨부를 가져오므로, image_url은 공개 HTTPS여야 하고 인증 없이 접근할 수 있어야 합니다.
| 상태 | 코드 | 원인 |
|---|---|---|
400 | invalid_request | 지출 상한 누락, instruction/messages를 하나도 보내지 않거나 둘 다 보냄, assistant 턴, 형식이 잘못된 input, 또는 sume-agent가 아닌 model |
400 | invalid_attachment | 잘못된 type, URL이 없거나 HTTPS가 아님, image_url과 asset_id를 둘 다 보냄, 또는 허용되지 않는 이미지 |
400 | attachment_not_found | 이 워크스페이스에서 알 수 없는 asset_id |
413 | attachment_too_large | 30 MB를 넘는 이미지, 또는 전체가 500 MB를 넘는 첨부 |
502 | attachment_fetch_failed | 도달할 수 없는 호스트, 핫링크 차단, 또는 2xx가 아닌 응답 |
403 | insufficient_scope | 키에 agent_completions:*가 없거나 서비스 계정 키임 |
404 | agent_run_not_found | 알 수 없는 실행 ID 또는 다른 계정의 실행. Action과 Format 실행 ID는 여기서 해석되지 않음 |
409 | idempotency_conflict | 같은 키를 다른 페이로드로 재사용 |
유효한 키가 왜 403 insufficient_scope를 받나요?
스코프는 키를 만들 때 고정됩니다. Agent Completions나 Actions API 호출 트리거가 출시되기 전에 발급한 키에는 해당 표면의 스코프가 없어 403 insufficient_scope로 실패합니다. 스코프는 나중에 추가할 수 없으므로 API 키에서 새 키를 만들어 교체하세요. 스케줄 트리거에서 이 오류의 next_action은 authenticate입니다. 요청 본문을 바꾸는 것이 아니라 올바른 스코프가 있는 키가 해법입니다.
- 스케줄 트리거에서는
details.required_scope가actions:write처럼 빠진 스코프를 알려 줍니다. 조회에는actions:read또는agent_completions:read가, 생성과 취소에는 그에 맞는:write스코프가 필요합니다. - 서비스 계정 키로는 이 실행들을 만들 수 없습니다. 이때
details.reason은service_account_action_runs_unsupported또는service_account_agent_completions_unsupported입니다. Send only one API key credential.메시지와 함께 오는401은 요청에Authorization: Bearer와x-api-key가 함께 실렸다는 뜻입니다.
실행을 조회하거나 목록을 볼 때는 어떤 오류가 돌아오나요?
각 실행은 해당 계열의 경로(/v1/action-runs/{run_id}, /v1/agent-runs/{run_id}, /v1/format-runs/{run_id})에서 읽으세요.
GET /v1/action-runs/{run_id}/result는 실행이queued나processing인 동안409 run_not_completed를 반환하며, 현재 상태는details.status에 담깁니다. API 레퍼런스에는/v1/agent-runs/{run_id}/result에도 같은409가 나와 있습니다.next_action이poll_status인 동안에는status_url을 폴링하세요.- 스케줄의 실행 목록은
limit으로 1–100을 받습니다(기본값 50). Sume가 발급하지 않은cursor는400 invalid_request입니다. - 스케줄 실행 취소는 멱등입니다. 종료된 실행을 취소하면 그 영수증이
200과 함께 돌아옵니다. - 모든 오류에서
request_id를 로그에 남기고, 실행 조사를 요청할 때 함께 알려 주세요.
실패한 에이전트 실행은 무엇을 알려 주나요?
시작한 뒤 실패한 실행은 error와 함께 failed로 끝납니다. 스케줄 실행에서 error.code는 output_error.code가 있으면 그 값이고, 없으면 action_run_failed입니다. Agent Completions에서는 Run 웹훅이 대체 값으로 agent_run_failed를 씁니다. API에서는 출력이 output_schema를 충족하지 못하면 실행이 output_schema_unsatisfied로 실패하지만, artifacts[]에는 미디어가 그대로 나열됩니다. 예외는 output_extraction_failed로, 실행은 completed로 남고 다음 조회 때 채워집니다. 실행이 시작되기 전에 잡히는 스키마 오류는 output_schema_invalid 해결하기를 참고하세요.
출처
관련 글
작성자 Sume