{
  "version": "riddle-proof.profile-result.v1",
  "profile_name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results",
  "runner": "riddle",
  "status": "passed",
  "baseline_policy": "invariant_only",
  "route": {
    "requested": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
    "observed": "/s/ps_ae882d2a/playground/",
    "expected_path": "/playground/",
    "matched": true,
    "http_status": 200
  },
  "artifacts": {
    "screenshots": [
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop-script-failed-secondary-only-ready",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop-script-failed-secondary-only-result-expanded",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone-script-failed-secondary-only-ready",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone-script-failed-secondary-only-result-expanded",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini-script-failed-secondary-only-ready",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini-script-failed-secondary-only-result-expanded",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-script-failed-secondary-only-ready",
      "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-script-failed-secondary-only-result-expanded"
    ],
    "console": "console.json",
    "proof_json": "proof.json",
    "dom_summary": "dom-summary.json",
    "riddle_artifacts": [
      {
        "name": "proof.json",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/proof.json.json",
        "source": "artifacts"
      },
      {
        "name": "console.json",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/console.json.json",
        "source": "artifacts"
      },
      {
        "name": "dom-summary.json",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/dom-summary.json.json",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop-script-failed-secondary-only-ready.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop-script-failed-secondary-only-ready.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop-script-failed-secondary-only-result-expanded.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop-script-failed-secondary-only-result-expanded.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone-script-failed-secondary-only-ready.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone-script-failed-secondary-only-ready.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone-script-failed-secondary-only-result-expanded.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone-script-failed-secondary-only-result-expanded.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini-script-failed-secondary-only-ready.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini-script-failed-secondary-only-ready.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini-script-failed-secondary-only-result-expanded.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini-script-failed-secondary-only-result-expanded.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-script-failed-secondary-only-ready.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-script-failed-secondary-only-ready.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-script-failed-secondary-only-result-expanded.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-script-failed-secondary-only-result-expanded.png",
        "source": "artifacts"
      },
      {
        "name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad.png",
        "url": "https://cdn.riddledc.com/scripts/job_1fe8aa7b/riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad.png",
        "source": "artifacts"
      }
    ]
  },
  "checks": [
    {
      "type": "network_mocks_succeeded",
      "label": "network mocks succeeded",
      "status": "passed",
      "evidence": {
        "mock_count": 5,
        "required_count": 4,
        "hit_count": 16,
        "hits_by_label": {
          "playground-script-v509-submit-failed-secondary-only": 4,
          "playground-script-v509-custom-artifacts": 4,
          "playground-script-v509-valid-console-artifact": 4,
          "playground-script-v509-valid-har-artifact": 4,
          "playground-script-v509-forbidden-default-artifacts-url": 0
        },
        "required_hits_by_label": {
          "playground-script-v509-submit-failed-secondary-only": 4,
          "playground-script-v509-custom-artifacts": 4,
          "playground-script-v509-valid-console-artifact": 4,
          "playground-script-v509-valid-har-artifact": 4
        },
        "max_hits_by_label": {
          "playground-script-v509-submit-failed-secondary-only": 4,
          "playground-script-v509-custom-artifacts": 4,
          "playground-script-v509-valid-console-artifact": 4,
          "playground-script-v509-valid-har-artifact": 4,
          "playground-script-v509-forbidden-default-artifacts-url": 0
        },
        "response_hits_by_label": {},
        "failed": []
      }
    },
    {
      "type": "setup_actions_succeeded",
      "label": "setup actions succeeded",
      "status": "passed",
      "evidence": {
        "action_count": 31,
        "viewports": [
          {
            "name": "desktop",
            "expected_action_count": 31,
            "ok": true,
            "result_count": 31
          },
          {
            "name": "phone",
            "expected_action_count": 31,
            "ok": true,
            "result_count": 31
          },
          {
            "name": "ipad-mini",
            "expected_action_count": 31,
            "ok": true,
            "result_count": 31
          },
          {
            "name": "ipad",
            "expected_action_count": 31,
            "ok": true,
            "result_count": 31
          }
        ],
        "setup_summary": {
          "viewport_count": 4,
          "action_count": 31,
          "viewports": [
            {
              "name": "desktop",
              "expected_action_count": 31,
              "ok": true,
              "result_count": 31,
              "observed_path": "/s/ps_ae882d2a/playground/",
              "final_url": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 4,
                "wait_for_text": 5,
                "clear_console": 1,
                "click": 5,
                "assert_text_visible": 7,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop-script-failed-secondary-only-ready",
                "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop-script-failed-secondary-only-result-expanded"
              ],
              "clicked_total": 5,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
                  "frame_selector": null,
                  "text": "Script"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Script"
                },
                {
                  "ordinal": 23,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 28,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Network HAR 1 requests"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 21,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 22,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 25,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
                },
                {
                  "ordinal": 26,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
                },
                {
                  "ordinal": 27,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp482-playground@example.com Sign Out API Playground Tes... (516 chars)"
                },
                {
                  "ordinal": 29,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp482-playground@example.com Sign Out API Playground Tes... (516 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            },
            {
              "name": "phone",
              "expected_action_count": 31,
              "ok": true,
              "result_count": 31,
              "observed_path": "/s/ps_ae882d2a/playground/",
              "final_url": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 4,
                "wait_for_text": 5,
                "clear_console": 1,
                "click": 5,
                "assert_text_visible": 7,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone-script-failed-secondary-only-ready",
                "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone-script-failed-secondary-only-result-expanded"
              ],
              "clicked_total": 5,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
                  "frame_selector": null,
                  "text": "Script"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Script"
                },
                {
                  "ordinal": 23,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 28,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Network HAR 1 requests"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 21,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 22,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 25,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
                },
                {
                  "ordinal": 26,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
                },
                {
                  "ordinal": 27,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                },
                {
                  "ordinal": 29,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            },
            {
              "name": "ipad-mini",
              "expected_action_count": 31,
              "ok": true,
              "result_count": 31,
              "observed_path": "/s/ps_ae882d2a/playground/",
              "final_url": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 4,
                "wait_for_text": 5,
                "clear_console": 1,
                "click": 5,
                "assert_text_visible": 7,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini-script-failed-secondary-only-ready",
                "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini-script-failed-secondary-only-result-expanded"
              ],
              "clicked_total": 5,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
                  "frame_selector": null,
                  "text": "Script"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Script"
                },
                {
                  "ordinal": 23,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 28,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Network HAR 1 requests"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 21,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 22,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 25,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
                },
                {
                  "ordinal": 26,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
                },
                {
                  "ordinal": 27,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                },
                {
                  "ordinal": 29,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            },
            {
              "name": "ipad",
              "expected_action_count": 31,
              "ok": true,
              "result_count": 31,
              "observed_path": "/s/ps_ae882d2a/playground/",
              "final_url": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
              "action_counts": {
                "clear_storage": 1,
                "local_storage": 5,
                "wait_for_selector": 4,
                "wait_for_text": 5,
                "clear_console": 1,
                "click": 5,
                "assert_text_visible": 7,
                "fill": 1,
                "screenshot": 2
              },
              "frame_action_count": 0,
              "frame_urls": [],
              "setup_screenshots": [
                "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-script-failed-secondary-only-ready",
                "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-script-failed-secondary-only-result-expanded"
              ],
              "clicked_total": 5,
              "clicked_truncated": false,
              "click_count_action_total": 0,
              "click_count_value_total": 0,
              "clicked": [
                {
                  "ordinal": 10,
                  "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
                  "frame_selector": null,
                  "text": "Script"
                },
                {
                  "ordinal": 12,
                  "selector": ".mode-toggle-section .toggle-btn",
                  "frame_selector": null,
                  "text": "Async"
                },
                {
                  "ordinal": 16,
                  "selector": ".test-button",
                  "frame_selector": null,
                  "text": "Run Script"
                },
                {
                  "ordinal": 23,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 28,
                  "selector": ".console-toggle",
                  "frame_selector": null,
                  "text": "▶ Network HAR 1 requests"
                }
              ],
              "text_samples": [
                {
                  "ordinal": 21,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 22,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "▶ Console Output 1 log 1 error"
                },
                {
                  "ordinal": 25,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
                },
                {
                  "ordinal": 26,
                  "action": "assert_text_visible",
                  "frame_selector": null,
                  "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
                },
                {
                  "ordinal": 27,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                },
                {
                  "ordinal": 29,
                  "action": "wait_for_text",
                  "frame_selector": null,
                  "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.00... (516 chars)"
                }
              ],
              "failed": [],
              "optional_failed": []
            }
          ]
        },
        "failed": []
      }
    },
    {
      "type": "route_loaded",
      "label": "route_loaded",
      "status": "passed",
      "evidence": {
        "expected_path": "/playground/",
        "observed_paths": [
          "/s/ps_ae882d2a/playground/",
          "/s/ps_ae882d2a/playground/",
          "/s/ps_ae882d2a/playground/",
          "/s/ps_ae882d2a/playground/"
        ],
        "http_statuses": [
          200,
          200,
          200,
          200
        ]
      }
    },
    {
      "type": "selector_visible",
      "label": "selector_visible",
      "status": "passed",
      "evidence": {
        "selector": ".playground-page",
        "visible_counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "API Playground",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Result",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Error",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "job_rp509_script_failed_secondary_only",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Synthetic v509 script failed after collecting secondary artifacts",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "partial results available",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "selector_text_visible",
      "label": "selector_text_visible",
      "status": "passed",
      "evidence": {
        "selector": ".no-screenshots",
        "text": "No screenshots captured",
        "pattern": null,
        "viewports": [
          {
            "viewport": "desktop",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ]
          },
          {
            "viewport": "phone",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ]
          },
          {
            "viewport": "ipad-mini",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ]
          },
          {
            "viewport": "ipad",
            "selector_count": 1,
            "visible_count": 1,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ]
          }
        ]
      }
    },
    {
      "type": "selector_text_visible",
      "label": "selector_text_visible",
      "status": "passed",
      "evidence": {
        "selector": ".console-output",
        "text": "rp509 secondary evidence only",
        "pattern": null,
        "viewports": [
          {
            "viewport": "desktop",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
            ]
          },
          {
            "viewport": "phone",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
            ]
          },
          {
            "viewport": "ipad-mini",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
            ]
          },
          {
            "viewport": "ipad",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
            ]
          }
        ]
      }
    },
    {
      "type": "selector_text_visible",
      "label": "selector_text_visible",
      "status": "passed",
      "evidence": {
        "selector": ".console-output",
        "text": "rp509 script captured error line",
        "pattern": null,
        "viewports": [
          {
            "viewport": "desktop",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
            ]
          },
          {
            "viewport": "phone",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
            ]
          },
          {
            "viewport": "ipad-mini",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
            ]
          },
          {
            "viewport": "ipad",
            "selector_count": 2,
            "visible_count": 2,
            "matched_count": 1,
            "matched": true,
            "samples": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line"
            ]
          }
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "Network HAR",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_visible",
      "label": "text_visible",
      "status": "passed",
      "evidence": {
        "text": "rp509-secondary-resource",
        "matches": [
          true,
          true,
          true,
          true
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "No console output captured",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "No network requests captured",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "Failed at step",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "text_absent",
      "label": "text_absent",
      "status": "passed",
      "evidence": {
        "text": "Application error",
        "matches": [
          false,
          false,
          false,
          false
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".error-warning",
        "expected_count": 1,
        "counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".timeout-warning",
        "expected_count": 0,
        "counts": [
          0,
          0,
          0,
          0
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".no-screenshots",
        "expected_count": 1,
        "counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".screenshots-section .screenshot-item",
        "expected_count": 0,
        "counts": [
          0,
          0,
          0,
          0
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".console-section",
        "expected_count": 2,
        "counts": [
          2,
          2,
          2,
          2
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".console-entry",
        "expected_count": 3,
        "counts": [
          3,
          3,
          3,
          3
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".console-entry.console-error",
        "expected_count": 1,
        "counts": [
          1,
          1,
          1,
          1
        ]
      }
    },
    {
      "type": "selector_count_equals",
      "label": "selector_count_equals",
      "status": "passed",
      "evidence": {
        "selector": ".loading-state",
        "expected_count": 0,
        "counts": [
          0,
          0,
          0,
          0
        ]
      }
    },
    {
      "type": "no_horizontal_overflow",
      "label": "no_horizontal_overflow",
      "status": "passed",
      "evidence": {
        "max_overflow_px": 1,
        "overflow_px": [
          0,
          0,
          0,
          0
        ],
        "bounds_overflow_px": [
          0,
          0,
          0,
          0
        ],
        "overflow_offender_counts": [
          0,
          0,
          0,
          0
        ],
        "viewports": [
          "desktop",
          "phone",
          "ipad-mini",
          "ipad"
        ]
      }
    },
    {
      "type": "no_fatal_console_errors",
      "label": "no_fatal_console_errors",
      "status": "passed",
      "evidence": {
        "console_fatal_count": 0,
        "page_error_count": 0,
        "total_console_fatal_count": 0,
        "total_page_error_count": 0,
        "allowed_console_fatal_count": 0,
        "explicitly_allowed_console_fatal_count": 0,
        "allowed_expected_network_mock_console_count": 0,
        "allowed_expected_network_mock_console_events": [],
        "allowed_page_error_count": 0,
        "allowed_console_texts": [],
        "allowed_console_patterns": [],
        "allowed_page_error_texts": [],
        "allowed_page_error_patterns": []
      }
    },
    {
      "type": "no_console_warnings",
      "label": "no_console_warnings",
      "status": "passed",
      "evidence": {
        "console_warning_count": 0,
        "total_console_warning_count": 0,
        "allowed_console_warning_count": 0,
        "allowed_console_texts": [],
        "allowed_console_patterns": [],
        "unallowed_console_warning_samples": [],
        "allowed_console_warning_samples": []
      }
    }
  ],
  "summary": "riddle-site-v509-playground-script-failed-secondary-only-partial-results passed 30 check(s) across 4 viewport(s) (desktop, phone, ipad-mini, ipad).",
  "captured_at": "2026-05-17T20:33:26.452Z",
  "evidence": {
    "version": "riddle-proof.profile-evidence.v1",
    "profile_name": "riddle-site-v509-playground-script-failed-secondary-only-partial-results",
    "target_url": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
    "baseline_policy": "invariant_only",
    "captured_at": "2026-05-17T20:33:26.452Z",
    "viewports": [
      {
        "name": "desktop",
        "width": 1280,
        "height": 900,
        "url": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
        "route": {
          "requested": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
          "observed": "/s/ps_ae882d2a/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 2298,
        "body_text_sample": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp482-playground@example.com Sign Out API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Use console.log() for debugging (saved to console.json). The page object is pre-initialized. Timeout: 1 minute 2 minutes 3 minutes (default) 5 minutes 10 minutes 30 minutes (max) Max time before job stops Webhook URL (optional): Receive a POST when job completes Run Script Result Time: 1.1s Billed: ~38s Cost: ~$0.00528 Error Job ID job_rp509_script_failed_secondary_only Error: Synthetic v509 script failed after collecting secondary artifacts (partial results available) No screenshots captured. Make sure your script calls saveScreenshot(\"name\"). ▼ Console Output 1 log 1 error [LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line ▼ Network HAR 1 requests 418 GET https://example.com/rp509-secondary-resource curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com/rp509-secondary-only');\\nconsole.log('rp509 secondary evidence only');\\nawait fetch('https://example.com/rp509-secondary-resource');\\nthrow new Error('rp509 synthetic no screenshot failure');\", \"sync\": false, \"timeout_sec\": 180 }' Next Steps Full API Documentation Optimize Costs with Batching Manage Your Account Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 1280,
        "client_width": 1280,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".playground-page": {
            "count": 1,
            "visible_count": 1
          },
          ".no-screenshots": {
            "count": 1,
            "visible_count": 1
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2
          },
          ".error-warning": {
            "count": 1,
            "visible_count": 1
          },
          ".timeout-warning": {
            "count": 0,
            "visible_count": 0
          },
          ".screenshots-section .screenshot-item": {
            "count": 0,
            "visible_count": 0
          },
          ".console-section": {
            "count": 2,
            "visible_count": 2
          },
          ".console-entry": {
            "count": 3,
            "visible_count": 3
          },
          ".console-entry.console-error": {
            "count": 1,
            "visible_count": 1
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".no-screenshots": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "visible_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "match_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "visible_match_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ]
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2,
            "texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "visible_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "match_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "visible_match_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ]
          }
        },
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Error": true,
          "text:job_rp509_script_failed_secondary_only": true,
          "text:Synthetic v509 script failed after collecting secondary artifacts": true,
          "text:partial results available": true,
          "text:Network HAR": true,
          "text:rp509-secondary-resource": true,
          "text:No console output captured": false,
          "text:No network requests captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 28,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.accessToken",
            "value_length": 361,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".playground-page",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 7,
            "selector": ".test-button:not(:disabled)",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp482-playground@example.com Sign Out API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script URL to Screenshot: Options: Full Page Mobile View (375x667) Include in response: Console Logs Network HAR Get debugging artifact... (1157 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 0,
            "cleared_page_error_count": 0
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Script"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp482-playground@example.com Sign Out API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async 28s max, screenshots included Include in response: Console Logs Network HAR Example Scripts: Simple Screenshot ... (1419 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 12,
            "selector": ".mode-toggle-section .toggle-btn",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "Async"
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp482-playground@example.com Sign Out API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging D... (1359 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "fill",
            "ordinal": 14,
            "selector": "textarea.script-input",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "value_length": 225
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-failed-secondary-only-ready",
            "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop-script-failed-secondary-only-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Script"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 17,
            "selector": ".error-warning",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 18,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp482-playground@example.com Sign Out API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging D... (2168 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".no-screenshots",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "No screenshots captured. Make sure your script calls saveScreenshot(\"name\").",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 20,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 21,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 22,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 23,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 0,
            "text": "▶ Console Output 1 log 1 error"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 24,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 25,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 26,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 27,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp482-playground@example.com Sign Out API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging D... (2245 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 28,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "▶ Network HAR 1 requests"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 29,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle Docs Proof MCP Pricing Blog Playground Dashboard Buy Credits rp482-playground@example.com Sign Out API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging D... (2298 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 30,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-failed-secondary-only-result-expanded",
            "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop-script-failed-secondary-only-result-expanded"
          }
        ],
        "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-desktop"
      },
      {
        "name": "phone",
        "width": 390,
        "height": 844,
        "url": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
        "route": {
          "requested": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
          "observed": "/s/ps_ae882d2a/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 2199,
        "body_text_sample": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Use console.log() for debugging (saved to console.json). The page object is pre-initialized. Timeout: 1 minute 2 minutes 3 minutes (default) 5 minutes 10 minutes 30 minutes (max) Max time before job stops Webhook URL (optional): Receive a POST when job completes Run Script Result Time: 1.0s Billed: ~38s Cost: ~$0.00528 Error Job ID job_rp509_script_failed_secondary_only Error: Synthetic v509 script failed after collecting secondary artifacts (partial results available) No screenshots captured. Make sure your script calls saveScreenshot(\"name\"). ▼ Console Output 1 log 1 error [LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line ▼ Network HAR 1 requests 418 GET https://example.com/rp509-secondary-resource curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com/rp509-secondary-only');\\nconsole.log('rp509 secondary evidence only');\\nawait fetch('https://example.com/rp509-secondary-resource');\\nthrow new Error('rp509 synthetic no screenshot failure');\", \"sync\": false, \"timeout_sec\": 180 }' Next Steps Full API Documentation Optimize Costs with Batching Manage Your Account Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 390,
        "client_width": 390,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".playground-page": {
            "count": 1,
            "visible_count": 1
          },
          ".no-screenshots": {
            "count": 1,
            "visible_count": 1
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2
          },
          ".error-warning": {
            "count": 1,
            "visible_count": 1
          },
          ".timeout-warning": {
            "count": 0,
            "visible_count": 0
          },
          ".screenshots-section .screenshot-item": {
            "count": 0,
            "visible_count": 0
          },
          ".console-section": {
            "count": 2,
            "visible_count": 2
          },
          ".console-entry": {
            "count": 3,
            "visible_count": 3
          },
          ".console-entry.console-error": {
            "count": 1,
            "visible_count": 1
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".no-screenshots": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "visible_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "match_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "visible_match_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ]
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2,
            "texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "visible_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "match_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "visible_match_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ]
          }
        },
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Error": true,
          "text:job_rp509_script_failed_secondary_only": true,
          "text:Synthetic v509 script failed after collecting secondary artifacts": true,
          "text:partial results available": true,
          "text:Network HAR": true,
          "text:rp509-secondary-resource": true,
          "text:No console output captured": false,
          "text:No network requests captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 28,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.accessToken",
            "value_length": 361,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".playground-page",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 7,
            "selector": ".test-button:not(:disabled)",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script URL to Screenshot: Options: Full Page Mobile View (375x667) Include in response: Console Logs Network HAR Get debugging artifacts with your screenshot Timeout: 28 seconds (sync max) 30 seconds 60 seconds 28s max for sync Webhoo... (1058 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 0,
            "cleared_page_error_count": 0
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Script"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async 28s max, screenshots included Include in response: Console Logs Network HAR Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright S... (1320 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 12,
            "selector": ".mode-toggle-section .toggle-btn",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "Async"
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (1260 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "fill",
            "ordinal": 14,
            "selector": "textarea.script-input",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "value_length": 225
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-failed-secondary-only-ready",
            "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone-script-failed-secondary-only-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Script"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 17,
            "selector": ".error-warning",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 18,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (2069 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".no-screenshots",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "No screenshots captured. Make sure your script calls saveScreenshot(\"name\").",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 20,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 21,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 22,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 23,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 0,
            "text": "▶ Console Output 1 log 1 error"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 24,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 25,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 26,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 27,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (2146 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 28,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "▶ Network HAR 1 requests"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 29,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (2199 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 30,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-failed-secondary-only-result-expanded",
            "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone-script-failed-secondary-only-result-expanded"
          }
        ],
        "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-phone"
      },
      {
        "name": "ipad-mini",
        "width": 768,
        "height": 1024,
        "url": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
        "route": {
          "requested": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
          "observed": "/s/ps_ae882d2a/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 2199,
        "body_text_sample": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Use console.log() for debugging (saved to console.json). The page object is pre-initialized. Timeout: 1 minute 2 minutes 3 minutes (default) 5 minutes 10 minutes 30 minutes (max) Max time before job stops Webhook URL (optional): Receive a POST when job completes Run Script Result Time: 1.0s Billed: ~38s Cost: ~$0.00528 Error Job ID job_rp509_script_failed_secondary_only Error: Synthetic v509 script failed after collecting secondary artifacts (partial results available) No screenshots captured. Make sure your script calls saveScreenshot(\"name\"). ▼ Console Output 1 log 1 error [LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line ▼ Network HAR 1 requests 418 GET https://example.com/rp509-secondary-resource curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com/rp509-secondary-only');\\nconsole.log('rp509 secondary evidence only');\\nawait fetch('https://example.com/rp509-secondary-resource');\\nthrow new Error('rp509 synthetic no screenshot failure');\", \"sync\": false, \"timeout_sec\": 180 }' Next Steps Full API Documentation Optimize Costs with Batching Manage Your Account Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 768,
        "client_width": 768,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".playground-page": {
            "count": 1,
            "visible_count": 1
          },
          ".no-screenshots": {
            "count": 1,
            "visible_count": 1
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2
          },
          ".error-warning": {
            "count": 1,
            "visible_count": 1
          },
          ".timeout-warning": {
            "count": 0,
            "visible_count": 0
          },
          ".screenshots-section .screenshot-item": {
            "count": 0,
            "visible_count": 0
          },
          ".console-section": {
            "count": 2,
            "visible_count": 2
          },
          ".console-entry": {
            "count": 3,
            "visible_count": 3
          },
          ".console-entry.console-error": {
            "count": 1,
            "visible_count": 1
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".no-screenshots": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "visible_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "match_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "visible_match_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ]
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2,
            "texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "visible_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "match_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "visible_match_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ]
          }
        },
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Error": true,
          "text:job_rp509_script_failed_secondary_only": true,
          "text:Synthetic v509 script failed after collecting secondary artifacts": true,
          "text:partial results available": true,
          "text:Network HAR": true,
          "text:rp509-secondary-resource": true,
          "text:No console output captured": false,
          "text:No network requests captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 28,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.accessToken",
            "value_length": 361,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".playground-page",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 7,
            "selector": ".test-button:not(:disabled)",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script URL to Screenshot: Options: Full Page Mobile View (375x667) Include in response: Console Logs Network HAR Get debugging artifacts with your screenshot Timeout: 28 seconds (sync max) 30 seconds 60 seconds 28s max for sync Webhoo... (1058 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 0,
            "cleared_page_error_count": 0
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Script"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async 28s max, screenshots included Include in response: Console Logs Network HAR Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright S... (1320 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 12,
            "selector": ".mode-toggle-section .toggle-btn",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "Async"
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (1260 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "fill",
            "ordinal": 14,
            "selector": "textarea.script-input",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "value_length": 225
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-failed-secondary-only-ready",
            "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini-script-failed-secondary-only-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Script"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 17,
            "selector": ".error-warning",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 18,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (2069 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".no-screenshots",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "No screenshots captured. Make sure your script calls saveScreenshot(\"name\").",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 20,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 21,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 22,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 23,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 0,
            "text": "▶ Console Output 1 log 1 error"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 24,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 25,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 26,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 27,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (2146 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 28,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "▶ Network HAR 1 requests"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 29,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (2199 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 30,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-failed-secondary-only-result-expanded",
            "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini-script-failed-secondary-only-result-expanded"
          }
        ],
        "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-mini"
      },
      {
        "name": "ipad",
        "width": 820,
        "height": 1180,
        "url": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
        "route": {
          "requested": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
          "observed": "/s/ps_ae882d2a/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        "title": "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "body_text_length": 2199,
        "body_text_sample": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Use console.log() for debugging (saved to console.json). The page object is pre-initialized. Timeout: 1 minute 2 minutes 3 minutes (default) 5 minutes 10 minutes 30 minutes (max) Max time before job stops Webhook URL (optional): Receive a POST when job completes Run Script Result Time: 1.0s Billed: ~38s Cost: ~$0.00528 Error Job ID job_rp509_script_failed_secondary_only Error: Synthetic v509 script failed after collecting secondary artifacts (partial results available) No screenshots captured. Make sure your script calls saveScreenshot(\"name\"). ▼ Console Output 1 log 1 error [LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line ▼ Network HAR 1 requests 418 GET https://example.com/rp509-secondary-resource curl Command: Copy curl -X POST https://api.riddledc.com/v1/run \\ -H \"Authorization: Bearer YOUR_API_KEY\" \\ -H \"Content-Type: application/json\" \\ -d '{ \"script\": \"await page.goto('https://example.com/rp509-secondary-only');\\nconsole.log('rp509 secondary evidence only');\\nawait fetch('https://example.com/rp509-secondary-resource');\\nthrow new Error('rp509 synthetic no screenshot failure');\", \"sync\": false, \"timeout_sec\": 180 }' Next Steps Full API Documentation Optimize Costs with Batching Manage Your Account Riddle Distributed Computing Product Riddle Proof Good Catch Diary Pricing Maximize Value Documentation MCP Recipes Playground Use Cases AI Agents Agent Guide Serverless Authenticated Pages vs Self-Hosted Blog Evidence Over Summaries Frontend Dev Without a Browser E2E Testing Tips Chatty Agents (Part I) Batching Heuristics (Part II) Vision Agents Teaching AI to Ski Support FAQ Status Contact Legal Terms Privacy © 2026 Riddle. All rights reserved.",
        "scroll_width": 820,
        "client_width": 820,
        "overflow_px": 0,
        "bounds_overflow_px": 0,
        "overflow_offenders": [],
        "selectors": {
          ".playground-page": {
            "count": 1,
            "visible_count": 1
          },
          ".no-screenshots": {
            "count": 1,
            "visible_count": 1
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2
          },
          ".error-warning": {
            "count": 1,
            "visible_count": 1
          },
          ".timeout-warning": {
            "count": 0,
            "visible_count": 0
          },
          ".screenshots-section .screenshot-item": {
            "count": 0,
            "visible_count": 0
          },
          ".console-section": {
            "count": 2,
            "visible_count": 2
          },
          ".console-entry": {
            "count": 3,
            "visible_count": 3
          },
          ".console-entry.console-error": {
            "count": 1,
            "visible_count": 1
          },
          ".loading-state": {
            "count": 0,
            "visible_count": 0
          }
        },
        "frames": {},
        "text_sequences": {
          ".no-screenshots": {
            "count": 1,
            "visible_count": 1,
            "texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "visible_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "match_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ],
            "visible_match_texts": [
              "No screenshots captured. Make sure your script calls saveScreenshot(\"name\")."
            ]
          },
          ".console-output": {
            "count": 2,
            "visible_count": 2,
            "texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "visible_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "match_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ],
            "visible_match_texts": [
              "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
              "418 GET https://example.com/rp509-secondary-resource"
            ]
          }
        },
        "text_matches": {
          "text:API Playground": true,
          "text:Result": true,
          "text:Error": true,
          "text:job_rp509_script_failed_secondary_only": true,
          "text:Synthetic v509 script failed after collecting secondary artifacts": true,
          "text:partial results available": true,
          "text:Network HAR": true,
          "text:rp509-secondary-resource": true,
          "text:No console output captured": false,
          "text:No network requests captured": false,
          "text:Failed at step": false,
          "text:Application error": false
        },
        "http_statuses": {},
        "link_statuses": {},
        "setup_action_results": [
          {
            "ok": true,
            "action": "clear_storage",
            "ordinal": 0,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "storage": "both",
            "reload": true
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 1,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.LastAuthUser",
            "value_length": 28,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 2,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.idToken",
            "value_length": 385,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 3,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.accessToken",
            "value_length": 361,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 4,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.refreshToken",
            "value_length": 19,
            "reload": false
          },
          {
            "ok": true,
            "action": "local_storage",
            "ordinal": 5,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "key": "CognitoIdentityServiceProvider.7u1bt3r20v613j7eaki9dkbhve.rp482-playground@example.com.clockDrift",
            "value_length": 1,
            "reload": true
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 6,
            "selector": ".playground-page",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 7,
            "selector": ".test-button:not(:disabled)",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 8,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script URL to Screenshot: Options: Full Page Mobile View (375x667) Include in response: Console Logs Network HAR Get debugging artifacts with your screenshot Timeout: 28 seconds (sync max) 30 seconds 60 seconds 28s max for sync Webhoo... (1058 chars)",
            "target_index": 0,
            "timeout_ms": 30000
          },
          {
            "ok": true,
            "action": "clear_console",
            "ordinal": 9,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "cleared_console_event_count": 0,
            "cleared_page_error_count": 0
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 10,
            "selector": ".mode-tabs .mode-tab:nth-of-type(4)",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Script"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 11,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async 28s max, screenshots included Include in response: Console Logs Network HAR Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright S... (1320 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 12,
            "selector": ".mode-toggle-section .toggle-btn",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "Async"
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 13,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (1260 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "fill",
            "ordinal": 14,
            "selector": "textarea.script-input",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "value_length": 225
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 15,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-failed-secondary-only-ready",
            "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-script-failed-secondary-only-ready"
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 16,
            "selector": ".test-button",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "target_index": 0,
            "text": "Run Script"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 17,
            "selector": ".error-warning",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 45000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 18,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (2069 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 19,
            "selector": ".no-screenshots",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "No screenshots captured. Make sure your script calls saveScreenshot(\"name\").",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 20,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 21,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 22,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "text": "▶ Console Output 1 log 1 error",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 23,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 0,
            "text": "▶ Console Output 1 log 1 error"
          },
          {
            "ok": true,
            "action": "wait_for_selector",
            "ordinal": 24,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 25,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "assert_text_visible",
            "ordinal": 26,
            "selector": ".console-output",
            "frame_selector": null,
            "optional": false,
            "count": 1,
            "text": "[LOG] rp509 secondary evidence only [ERROR] rp509 script captured error line",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 27,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (2146 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "click",
            "ordinal": 28,
            "selector": ".console-toggle",
            "frame_selector": null,
            "optional": false,
            "count": 2,
            "target_index": 1,
            "text": "▶ Network HAR 1 requests"
          },
          {
            "ok": true,
            "action": "wait_for_text",
            "ordinal": 29,
            "selector": "body",
            "frame_selector": null,
            "optional": false,
            "text": "Skip to main content Riddle API Playground Test the APIs and generate integration code for your application Each request uses 30s minimum (~$0.004 per job). View pricing | Optimize costs Full Documentation•For AI Agents•Authenticated Pages Screenshot Batch Workflow Script Mode: Sync Async All screenshots Example Scripts: Simple Screenshot Multi-Page Flow Form Fill Wait for Content Console Logging Dogfood (Screenshot Riddle) Playwright Script: Use saveScreenshot(\"name\") to capture screenshots. Us... (2199 chars)",
            "target_index": 0,
            "timeout_ms": 10000
          },
          {
            "ok": true,
            "action": "screenshot",
            "ordinal": 30,
            "selector": null,
            "frame_selector": null,
            "optional": false,
            "label": "script-failed-secondary-only-result-expanded",
            "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad-script-failed-secondary-only-result-expanded"
          }
        ],
        "screenshot_label": "riddle-site-v509-playground-script-failed-secondary-only-partial-results-ipad"
      }
    ],
    "console": {
      "events": [],
      "fatal_count": 0
    },
    "page_errors": [],
    "dialogs": [],
    "network_mocks": [
      {
        "ok": true,
        "label": "playground-script-v509-submit-failed-secondary-only",
        "response_label": "playground-script-v509-submit-failed-secondary-only",
        "hit_index": 0,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/run",
        "method": "POST",
        "status": 200,
        "request_body_matches": true,
        "request_body_failures": [],
        "request_body_length": 272,
        "request_body_sample": "{\"script\":\"await page.goto('https://example.com/rp509-secondary-only');\\nconsole.log('rp509 secondary evidence only');\\nawait fetch('https://example.com/rp509-secondary-resource');\\nthrow new Error('rp509 synthetic no screenshot failure');\",\"timeout_sec\":180,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-script-v509-custom-artifacts",
        "response_label": "playground-script-v509-custom-artifacts",
        "hit_index": 0,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/custom-artifacts",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-valid-console-artifact",
        "response_label": "playground-script-v509-valid-console-artifact",
        "hit_index": 0,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/valid-console.json",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-valid-har-artifact",
        "response_label": "playground-script-v509-valid-har-artifact",
        "hit_index": 0,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/valid-network.har",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-submit-failed-secondary-only",
        "response_label": "playground-script-v509-submit-failed-secondary-only",
        "hit_index": 1,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/run",
        "method": "POST",
        "status": 200,
        "request_body_matches": true,
        "request_body_failures": [],
        "request_body_length": 272,
        "request_body_sample": "{\"script\":\"await page.goto('https://example.com/rp509-secondary-only');\\nconsole.log('rp509 secondary evidence only');\\nawait fetch('https://example.com/rp509-secondary-resource');\\nthrow new Error('rp509 synthetic no screenshot failure');\",\"timeout_sec\":180,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-script-v509-custom-artifacts",
        "response_label": "playground-script-v509-custom-artifacts",
        "hit_index": 1,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/custom-artifacts",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-valid-console-artifact",
        "response_label": "playground-script-v509-valid-console-artifact",
        "hit_index": 1,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/valid-console.json",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-valid-har-artifact",
        "response_label": "playground-script-v509-valid-har-artifact",
        "hit_index": 1,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/valid-network.har",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-submit-failed-secondary-only",
        "response_label": "playground-script-v509-submit-failed-secondary-only",
        "hit_index": 2,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/run",
        "method": "POST",
        "status": 200,
        "request_body_matches": true,
        "request_body_failures": [],
        "request_body_length": 272,
        "request_body_sample": "{\"script\":\"await page.goto('https://example.com/rp509-secondary-only');\\nconsole.log('rp509 secondary evidence only');\\nawait fetch('https://example.com/rp509-secondary-resource');\\nthrow new Error('rp509 synthetic no screenshot failure');\",\"timeout_sec\":180,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-script-v509-custom-artifacts",
        "response_label": "playground-script-v509-custom-artifacts",
        "hit_index": 2,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/custom-artifacts",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-valid-console-artifact",
        "response_label": "playground-script-v509-valid-console-artifact",
        "hit_index": 2,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/valid-console.json",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-valid-har-artifact",
        "response_label": "playground-script-v509-valid-har-artifact",
        "hit_index": 2,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/valid-network.har",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-submit-failed-secondary-only",
        "response_label": "playground-script-v509-submit-failed-secondary-only",
        "hit_index": 3,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/run",
        "method": "POST",
        "status": 200,
        "request_body_matches": true,
        "request_body_failures": [],
        "request_body_length": 272,
        "request_body_sample": "{\"script\":\"await page.goto('https://example.com/rp509-secondary-only');\\nconsole.log('rp509 secondary evidence only');\\nawait fetch('https://example.com/rp509-secondary-resource');\\nthrow new Error('rp509 synthetic no screenshot failure');\",\"timeout_sec\":180,\"sync\":false}"
      },
      {
        "ok": true,
        "label": "playground-script-v509-custom-artifacts",
        "response_label": "playground-script-v509-custom-artifacts",
        "hit_index": 3,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/custom-artifacts",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-valid-console-artifact",
        "response_label": "playground-script-v509-valid-console-artifact",
        "hit_index": 3,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/valid-console.json",
        "method": "GET",
        "status": 200
      },
      {
        "ok": true,
        "label": "playground-script-v509-valid-har-artifact",
        "response_label": "playground-script-v509-valid-har-artifact",
        "hit_index": 3,
        "response_index": null,
        "response_selection": null,
        "sequence_reused": false,
        "sequence_cycle": false,
        "url": "https://api.riddledc.com/v1/jobs/job_rp509_script_failed_secondary_only/valid-network.har",
        "method": "GET",
        "status": 200
      }
    ],
    "dom_summary": {
      "expected_viewport_count": 4,
      "viewport_count": 4,
      "partial": false,
      "routes": [
        {
          "requested": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
          "observed": "/s/ps_ae882d2a/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
          "observed": "/s/ps_ae882d2a/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
          "observed": "/s/ps_ae882d2a/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        },
        {
          "requested": "https://preview.riddledc.com/s/ps_ae882d2a/playground/",
          "observed": "/s/ps_ae882d2a/playground/",
          "expected_path": "/playground/",
          "matched": true,
          "http_status": 200
        }
      ],
      "titles": [
        "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "Riddle Distributed Computing - Hosted Execution for AI Agents",
        "Riddle Distributed Computing - Hosted Execution for AI Agents"
      ],
      "overflow_px": [
        0,
        0,
        0,
        0
      ],
      "bounds_overflow_px": [
        0,
        0,
        0,
        0
      ],
      "overflow_offender_counts": [
        0,
        0,
        0,
        0
      ],
      "frames": [
        {
          "viewport": "desktop",
          "selectors": []
        },
        {
          "viewport": "phone",
          "selectors": []
        },
        {
          "viewport": "ipad-mini",
          "selectors": []
        },
        {
          "viewport": "ipad",
          "selectors": []
        }
      ],
      "http_status": [],
      "link_status": [],
      "route_inventory": [],
      "network_mock_count": 5,
      "network_mock_hit_count": 16,
      "dialog_count": 0,
      "dialog_accept_count": 0,
      "dialog_dismiss_count": 0
    }
  },
  "riddle": {
    "job_id": "job_1fe8aa7b",
    "status": "completed",
    "terminal": true
  }
}
