증상
릴리스 leader(mac-book-release)의 policies/timeouts/idle-kill.js가 mac-mini-release 소유 유휴 세션 codex/…/itismyfieldui-Macmini:AgentDesk-codex-adk-dash-cdx에 POST /api/sessions/{key}/kill-tmux를 5분마다 호출하고, 매번 아래로 실패한다.
policy: [idle-kill] kill-tmux API failed … {"code":"trusted_forward_origin_missing","owner_instance_id":"mac-mini-release"}
2026-09-02~09-05 dcserver 로그 3일치에서 ERROR 864건. 세션은 영구히 정리되지 않고, ERROR 레벨이라 진짜 장애 로그를 덮는다.
원인
운영 agentdesk.yaml에 cluster.nodes 절이 없다. 노드 간 세션 forwarding은 cluster.nodes.<instance_id>.trusted_forward_origin을 유일한 신뢰 근거로 쓰고, 레지스트리 광고값은 fallback이 되지 않는다(config.rs:995-1003 설계 의도). 그래서 session_forwarding/trusted_target.rs:32 MissingConfig → session_forwarding.rs:201 unavailable_target_error로 503이 난다.
mac-mini는 현재 방치 상태이지만 사용자는 나중에 다시 살릴 계획이다(2026-09-05 확인). 따라서 후보 제외가 아니라 노드 절을 채워 forwarding이 성립하게 하는 것이 맞다.
수정
- 운영 yaml에
cluster.nodes.mac-mini-release 추가: trusted_forward_origin(Tailscale 주소), allow_private_forwarding: true. HTTP를 쓰면 allow_insecure_http_forwarding: true도 필요(두 플래그 독립).
- 코드: 소유 노드의
cluster.nodes 절이 없을 때 idle-kill이 매 tick ERROR를 내지 않게 한다. 노드당 1회 WARN("owner node has no cluster.nodes entry; skipping idle-kill until configured") 후 그 노드 소유 세션은 후보에서 제외. 설정이 추가되면 자동 복귀.
- mac-mini가 오프라인인 동안에는 forwarding 자체가 실패하므로, 레지스트리 heartbeat가 만료된 노드 소유 세션도 같은 방식으로 1회 WARN + 제외.
완료 정의
관련
증상
릴리스 leader(mac-book-release)의
policies/timeouts/idle-kill.js가 mac-mini-release 소유 유휴 세션codex/…/itismyfieldui-Macmini:AgentDesk-codex-adk-dash-cdx에POST /api/sessions/{key}/kill-tmux를 5분마다 호출하고, 매번 아래로 실패한다.2026-09-02~09-05 dcserver 로그 3일치에서 ERROR 864건. 세션은 영구히 정리되지 않고, ERROR 레벨이라 진짜 장애 로그를 덮는다.
원인
운영
agentdesk.yaml에cluster.nodes절이 없다. 노드 간 세션 forwarding은cluster.nodes.<instance_id>.trusted_forward_origin을 유일한 신뢰 근거로 쓰고, 레지스트리 광고값은 fallback이 되지 않는다(config.rs:995-1003설계 의도). 그래서session_forwarding/trusted_target.rs:32MissingConfig→session_forwarding.rs:201unavailable_target_error로 503이 난다.mac-mini는 현재 방치 상태이지만 사용자는 나중에 다시 살릴 계획이다(2026-09-05 확인). 따라서 후보 제외가 아니라 노드 절을 채워 forwarding이 성립하게 하는 것이 맞다.
수정
cluster.nodes.mac-mini-release추가:trusted_forward_origin(Tailscale 주소),allow_private_forwarding: true. HTTP를 쓰면allow_insecure_http_forwarding: true도 필요(두 플래그 독립).cluster.nodes절이 없을 때 idle-kill이 매 tick ERROR를 내지 않게 한다. 노드당 1회 WARN("owner node has no cluster.nodes entry; skipping idle-kill until configured") 후 그 노드 소유 세션은 후보에서 제외. 설정이 추가되면 자동 복귀.완료 정의
GET /api/cluster/nodes로 확인)cluster.nodes미설정 또는 heartbeat 만료 노드 소유 세션에 대해 idle-kill이 tick마다 ERROR를 내지 않음 (24시간 로그에서trusted_forward_origin_missing0건)관련
59c50750f2, 로그~/.adk/release/logs/dcserver.stdout.log{,.1,.2}