{
  "file": "F05-run-pause-interrupt.md",
  "bullet": "Responsive while a run fails (`F05.run-error-responsive`), known bug.",
  "ids": [
    "F05.run-error-responsive"
  ],
  "line": 312,
  "script": "NERR=$(control-agent-server api GET \"<redacted:session-cookie>/$E/events/count\" --query kind=$ERROR_KIND --field .)\ncontrol-agent-server api GET /alive --auth none --expect 200 --expect-max-ms 1500 --save F05.run-error-responsive/alive-before\ncontrol-agent-server api POST \"<redacted:session-cookie>/$E/run\" --expect 200\nSLOWEST=0\nAFTER=0\nfor i in $(seq 1 60); do\n  ALIVE=$(control-agent-server api GET /alive --auth none --expect 200 --timeout 60 --quiet)\n  COUNT=$(control-agent-server api GET \"<redacted:session-cookie>/$E/events/count\" --query kind=$ERROR_KIND --expect 200 --timeout 60)\n  for OUT in \"$ALIVE\" \"$COUNT\"; do\n    MS=$(printf '%s' \"$OUT\" | python3 -c 'import json, sys; print(json.load(sys.stdin)[\"elapsed_ms\"])')\n    if [ \"$MS\" -gt \"$SLOWEST\" ]; then SLOWEST=$MS; fi\n  done\n  NOW=$(printf '%s' \"$COUNT\" | python3 -c 'import json, sys; print(json.load(sys.stdin)[\"response\"][\"body\"])')\n  if [ \"$NOW\" -gt \"$NERR\" ]; then AFTER=$((AFTER + 1)); fi\n  if [ \"$AFTER\" -ge 3 ]; then break; fi\ndone\ntest \"$AFTER\" -ge 3\ncontrol-agent-server api GET \"<redacted:session-cookie>/$E\" --check execution_status eq error --quiet --save F05.run-error-responsive/after\necho \"slowest probe while the run failed: $SLOWEST ms\"\ntest \"$SLOWEST\" -le 1500  # bug\n",
  "exit_code": 1,
  "elapsed_ms": 10659,
  "failed_line": 20,
  "failed_command": "test \"$SLOWEST\" -le 1500",
  "stdout": "{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"/alive\",\n    \"query\": [],\n    \"auth\": \"none\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"15\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"status\": \"ok\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 67,\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-024519-40d0-map-f05/evidence/F05.run-error-responsive/alive-before.json\"\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"POST\",\n    \"path\": \"<redacted:session-cookie>/6b0fdf90-2643-4c0f-8e3d-249ba10155f3/run\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"body\": null,\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"16\",\n      \"content-type\": \"application/json\"\n    },\n    \"body\": {\n      \"success\": true\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 50\n}\n{\n  \"ok\": true,\n  \"status\": 200,\n  \"request\": {\n    \"method\": \"GET\",\n    \"path\": \"<redacted:session-cookie>/6b0fdf90-2643-4c0f-8e3d-249ba10155f3\",\n    \"query\": [],\n    \"auth\": \"header\",\n    \"files\": []\n  },\n  \"response\": {\n    \"status\": 200,\n    \"headers\": {\n      \"content-length\": \"3456\",\n      \"content-type\": \"application/json\"\n    },\n    \"truncated\": false\n  },\n  \"elapsed_ms\": 128,\n  \"checks\": [\n    {\n      \"check\": \"execution_status eq error\",\n      \"ok\": true,\n      \"actual\": \"error\"\n    }\n  ],\n  \"saved\": \"/workspace/verification-artifacts/runs/20261013-024519-40d0-map-f05/evidence/F05.run-error-responsive/after.json\"\n}\nslowest probe while the run failed: 4512 ms\n",
  "stderr": ""
}
