DEBUG Loaded flyctl config from/root/.fly/config.yml
DEBUG determined hostname: "ubuntu-s-2vcpu-4gb-syd1-01"
DEBUG determined working directory: "/root"
DEBUG determined config directory: "/root/.fly"
DEBUG ensured config directory exists.
DEBUG ensured config directory perms.
DEBUG cache loaded.
DEBUG config initialized.
DEBUG skipped querying for new release
DEBUG checking for updates...
DEBUG client initialized.
DEBUG Attempting to upgrade authentication token
DEBUG Request:https://api.fly.io/aaa/v1/.well-known/macfly/3p
DEBUG no app config found at /root/fly.toml; skipped.
DEBUG no app config found at /root/fly.json; skipped.
DEBUG no app config found at /root/fly.yaml; skipped.
DEBUG Retrieving app info for rateright-au

DEBUG Starting task manager
DEBUG --> POST https://api.fly.io/graphql

DEBUG monitoring tokens in memory
DEBUG {
  "query": "query ($appName: String!) { appcompact:app(name: $appName) { id internalNumericId name hostname cnameTarget deployed network status appUrl platformVersion organization { id internalNumericId slug paidPlan } postgresAppRole: role { name } } }",
  "variables": {
    "appName": "rateright-au"
  }
}


DEBUG {}
DEBUG <-- 200 https://api.fly.io/graphql (262.76ms)

DEBUG   <-- https://api.fly.io/graphql: {"data":{"appcompact":{"id":"rateright-au","internalNumericId":9431654,"name":"rateright-au","hostname":"rateright-au.fly.dev","cnameTarget":"13wngzo.rateright-au.fly.dev","deployed":true,"network":"","status":"deployed","appUrl":"https://2a09:8280:1::8f:ea66:0","platformVersion":"machines","postgresAppRole":null,"organization":{"id":"ZRJPoxp8kwJ0ZuKLVmgJ2ZQ1bJH1KNpRK","internalNumericId":"1231966","slug":"personal","paidPlan":true}}}}
DEBUG --> POST https://api.fly.io/graphql

DEBUG {
  "query": "query ($appName: String!) { app(name: $appName) { network } }",
  "variables": {
    "appName": "rateright-au"
  }
}


DEBUG {}
DEBUG <-- 200 https://api.fly.io/graphql (267.67ms)

DEBUG   <-- https://api.fly.io/graphql: {"data":{"app":{"network":""}}}
DEBUG --> POST https://api.fly.io/graphql

DEBUG {
  "query": "mutation($input: ValidateWireGuardPeersInput!) { validateWireGuardPeers(input: $input) { invalidPeerIps } }",
  "variables": {
    "input": {
      "peerIps": [
        "fdaa:27:6e1:a7b:9076:0:a:102"
      ]
    }
  }
}


DEBUG {}
DEBUG <-- 200 https://api.fly.io/graphql (249.22ms)

DEBUG   <-- https://api.fly.io/graphql: {"data":{"validateWireGuardPeers":{"invalidPeerIps":[]}}}
DEBUG --> GET https://api.machines.dev/v1/apps/rateright-au/machines

DEBUG <-- 200 https://api.machines.dev/v1/apps/rateright-au/machines (24.26ms)

DEBUG   <-- https://api.machines.dev/v1/apps/rateright-au/machines: [{"id":"2867656c525168","name":"empty-wave-8731","state":"started","region":"syd","instance_id":"01KGHT0ANHR6WZPEZ2YP8ZF4JG","private_ip":"fdaa:27:6e1:a7b:2dc:ceb8:fcd1:2","config":{"env":{"FLASK_APP":"run.py","FLY_APP_NAME":"rateright-au","FLY_PROCESS_GROUP":"app","PORT":"8080","PRIMARY_REGION":"syd"},"init":{},"guest":{"cpu_kind":"shared","cpus":1,"memory_mb":2048},"metadata":{"fly_builder_id":"d8913edc06e428","fly_flyctl_version":"0.4.6","fly_platform_version":"v2","fly_process_group":"app","fly_release_
DEBUG   <-- https://api.machines.dev/v1/apps/rateright-au/machines: id":"rel_6ljo2e08d39gy7x1","fly_release_version":"324"},"services":[{"protocol":"tcp","internal_port":8080,"autostop":false,"autostart":true,"min_machines_running":1,"ports":[{"port":80,"handlers":["http"],"force_https":true},{"port":443,"handlers":["http","tls"]}],"checks":[{"type":"http","interval":"30s","timeout":"10s","grace_period":"30s","method":"GET","path":"/"}],"force_instance_key":null},{"protocol":"tcp","internal_port":8080,"ports":[{"port":80,"handlers":["http"]},{"port":443,"handlers":["tls","http"]}],"force_instance_key":null}],"image":"registry.fly.io/rateright-au:deployment-01KGHSXFG64N9HHQSZAADB9EF2","restart":{"policy":"on-failure","max_retries":10}},"incomplete_config":null,"image_ref":{"registry":"registry.fly.io","repository":"rateright-au","tag":"deployment-01KGHSXFG64N9HHQSZAADB9EF2","digest":"sha256:85a686459f33d356cad2e7460f03be9485ad010c7cbe20430d2d77a651117b4f","labels":{"GH_ACTION_NAME":"__run","GH_EVENT_NAME":"push","GH_REPO":"mcloughlinmichaelr-debug/-RateRight","GH_SHA":"19c135a
DEBUG   <-- https://api.machines.dev/v1/apps/rateright-au/machines: 37e698e4739e1dcc685a070b3f9cb625b"}},"created_at":"2025-08-15T01:17:58Z","updated_at":"2026-02-03T13:10:36Z","events":[{"id":"01KGHT0NG050ABCPJ4X0AJ3NZF","type":"start","status":"started","request":{},"source":"flyd","timestamp":1770124236288},{"id":"01KGHT0AQTHPTMKBP5677SQFC9","type":"launch","status":"created","source":"user","timestamp":1770124225274}],"checks":[{"name":"servicecheck-00-http-8080","status":"passing","output":"console.log('Cookie banner: Accept Necessary clicked');\n                    e.preventDefault();\n                    e.stopPropagation();\n                    saveConsent('necessary_only');\n                    hideBanner();\n                });\n            }\n        })();\n    });\n    \u003c/script\u003e\n\n    \u003c!-- Cookie Consent Banner --\u003e\n    \u003cdiv id=\"cookieConsent\" class=\"cookie-consent-banner\" style=\"display: none;\"\u003e\n        \u003cdiv class=\"cookie-consent-content\"\u003e\n            \u003cdiv class=\"cookie-consent-text\"\u003e\n                \u003ci class=\"fas fa-cookie-bite me-2\"\u003e\u003c/i\u003e\n                \u003cspan\u003eWe use cookies for authentication and to improve your experience. By continuing, you accept our use of cookies.\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"cookie-consent-actions\"\u003e\n                \u003cbutton id=\"acceptNecessaryCookies\" class=\"btn btn-sm btn-outline\"\u003eAccept Only Necessary\u003c/button\u003e\n                \u003cbutton id=\"acceptCookies\" class=\"btn btn-sm btn-light\"\u003eAccept All\u003c/button\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cstyle\u003e\n    /* Cookie Consent Banner - Non-obtrusive bottom bar */\n    .cookie-consent-banner {\n        position: fixed;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        background: rgba(0, 0, 0, 0.95);\n        backdrop-filter: blur(10px);\n        border-top: 2px solid #9ACD32;\n        padding: 12px 20px;\n        z-index: 9999 !im
DEBUG   <-- https://api.machines.dev/v1/apps/rateright-au/machines: portant;\n        animation: slideUpCookie 0.4s ease-out;\n        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.2);\n        pointer-events: auto !important;\n    }\n\n    .cookie-consent-content {\n        max-width: 1200px;\n        margin: 0 auto;\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        gap: 20px;\n        flex-wrap: wrap;\n    }\n\n    .cookie-consent-text {\n        display: flex;\n        align-items: center;\n        color: #fff;\n        font-size: 0.9rem;\n        flex: 1;\n        min-width: 250px;\n    }\n\n    .cookie-consent-text i {\n        color: #9ACD32;\n        font-size: 1.2rem;\n    }\n\n    .cookie-consent-actions {\n        display: flex;\n        gap: 10px;\n    }\n\n    .cookie-consent-actions .btn {\n        font-weight: 600;\n        padding: 6px 20px;\n        transition: all 0.2s ease;\n        cursor: pointer;\n        border-radius: 4px;\n        pointer-events: auto !important;\n        position: relative;\n        z-index: 10000 !important;\n    }\n\n    .cookie-consent-actions .btn-light {\n        background: #9ACD32 !important;\n        border: 2px solid #9ACD32 !important;\n        color: #000 !important;\n    }\n\n    .cookie-consent-actions .btn-light:hover {\n        background: #fff !important;\n        border-color: #fff !important;\n        color: #000 !important;\n        transform: translateY(-1px);\n    }\n\n    .cookie-consent-actions .btn-outline {\n        background: transparent !important;\n        border: 2px solid #fff !important;\n        color: #fff !important;\n    }\n\n    .cookie-consent-actions .btn-outline:hover {\n        background: rgba(255, 255, 255, 0.1) !important;\n        transform: translateY(-1px);\n    }\n\n    @keyframes slideUpCookie {\n        from {\n            transform: translateY(100%);\n            opacity: 0;\n        }\n        to {\n            transform: translateY(0);\n            opacity: 1;\n        }\n    }\n\n    @keyframes slideDownCookie {\n        from {\n            transform: translateY(0);\n            opacity: 1;\n        }\n        to {\n            transform: translateY(100%);\n            opacity: 0;\n        }\n    }\n\n    /* Mobile responsive */\n    @media (max-width: 768px) {\n        .cookie-consent-content {\n            flex-direction: column;\n            align-items: flex-start;\n            gap: 12px;\n        }\n        \n        .cookie-consent-text {\n            font-size: 0.85rem;\n        }\n        \n        .cookie-consent-actions {\n            width: 100%;\n            flex-direction: column;\n            gap: 8px;\n        }\n        \n        .cookie-consent-actions .btn {\n            width: 100%;\n            padding: 8px 16px;\n            font-size: 0.875rem;\n        }\n    }\n    \u003c/style\u003e\n\u003c/body\u003e\n\u003c/html\u003e","updated_at":"2026-02-23T20:44:01.136Z"}],"host_status":"ok"},{"id":"683031ec564438","name":"late-lake-2361","state":"started","region":"syd","instance_id":"01KGHT119DBR6C8320NMA7TWFF","private_ip":"fdaa:27:6e1:a7b:2db:921b:4fd9:2","config":{"env":{"FLASK_APP":"run.py","FLY_APP_NAME":"rateright-au","FLY_PROCESS_GROUP":"app","PORT":"8080","PRIMARY_REGION":"syd"},"init":{},"guest":{"cpu_kind":"shared","cpus":1,"memory_mb":2048},"metadata":{"fly_builder_id":"d8913edc06e428","fly_flyctl_version":"0.4.6","fly_platform_version":"v2","fly_process_group":"app","fly_release_id":"rel_6ljo2e08d39gy7x1","fly_release_version":"324"},"services":[{"protocol":"tcp","internal_port":8080,"autostop":false,"autostart":true,"min_machines_running":1,"ports":[{"port":80,"handlers":["http"],"force_https":true},{"port":443,"handlers":["http","tls"]}],"checks":[{"type":"http","interval":"30s","timeout":"10s","grace_period":"30s","method":"GET","path":"/"}],"force_instance_key":null},{"protocol":"tcp","internal_port":8080,"ports":[{"port":80,"handlers":["http"]},{"port":443,"handlers":["tls","http"]}],"force_instance_key":null}],"image":"registry.fly.io/rateright-au:deployment-01KGHSXFG64N9HHQSZAADB9EF2","restart":{"policy":"on-fai
DEBUG   <-- https://api.machines.dev/v1/apps/rateright-au/machines: lure","max_retries":10}},"incomplete_config":null,"image_ref":{"registry":"registry.fly.io","repository":"rateright-au","tag":"deployment-01KGHSXFG64N9HHQSZAADB9EF2","digest":"sha256:85a686459f33d356cad2e7460f03be9485ad010c7cbe20430d2d77a651117b4f","labels":{"GH_ACTION_NAME":"__run","GH_EVENT_NA
DEBUG   <-- https://api.machines.dev/v1/apps/rateright-au/machines: ME":"push","GH_REPO":"mcloughlinmichaelr-debug/-RateRight","GH_SHA":"19c135a37e698e4739e1dcc685a070b3f9cb625b"}},"created_at":"2025-10-02T15:58:08Z","updated_at":"2026-02-03T13:11:00Z","events":[{"id":"01KGHT1D87KCTHBY5FXZYG1HYH","type":"start","status":"started","request":{},"source":"flyd","timestamp":1770124260615},{"id":"01KGHT11ASD8PHB79CVKVMK9M5","type":"launch","status":"created","source":"user","timestamp":1770124248409}],"checks":[{"name":"servicecheck-00-http-8080","status":"passing","output":"console.log('Cookie banner: Accept Necessary clicked');\n                    e.preventDefault();\n                    e.stopPropagation();\n                    saveConsent('necessary_only');\n                    hideBanner();\n                });\n            }\n        })();\n    });\n    \u003c/script\u003e\n\n    \u003c!-- Cookie Consent Banner --\u003e\n    \u003cdiv id=\"cookieConsent\" class=\"cookie-consent-banner\" style=\"display: none;\"\u003e\n        \u003cdiv class=\"cookie-consent-content\"\u003e\n            \u003cdiv class=\"cookie-consent-text\"\u003e\n                \u003ci class=\"fas fa-cookie-bite me-2\"\u003e\u003c/i\u003e\n                \u003cspan\u003eWe use cookies for authentication and to improve your experience. By continuing, you accept our use of cookies.\u003c/span\u003e\n            \u003c/div\u003e\n            \u003cdiv class=\"cookie-consent-actions\"\u003e\n                \u003cbutton id=\"acceptNecessaryCookies\" class=\"btn btn-sm btn-outline\"\u003eAccept Only Necessary\u003c/button\u003e\n                \u003cbutton id=\"acceptCookies\" class=\"btn btn-sm btn-light\"\u003eAccept All\u003c/button\u003e\n            \u003c/div\u003e\n        \u003c/div\u003e\n    \u003c/div\u003e\n\n    \u003cstyle\u003e\n    /* Cookie Consent Banner - Non-obtrusive bottom bar */\n    .cookie-consent-banner {\n        position: fixed;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        background: rgba(0, 0, 0, 0.95);\n        backdrop-filter: blur(10px);\n        border-top: 2px solid #9ACD32;\n        padding: 12px 20px;\n        z-index: 9999 !important;\n        animation: slideUpCookie 0.4s ease-out;\n        box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.2);\n        pointer-events: auto !important;\n    }\n\n    .cookie-consent-content {\n        max-width: 1200px;\n        margin: 0 auto;\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        gap: 20px;\n        flex-wrap: wrap;\n    }\n\n    .cookie-consent-text {\n        display: flex;\n        align-items: center;\n        color: #fff;\n        font-size: 0.9rem;\n        flex: 1;\n        min-width: 250px;\n    }\n\n    .cookie-consent-text i {\n        color: #9ACD32;\n        font-size: 1.2rem;\n    }\n\n    .cookie-consent-actions {\n        display: flex;\n        gap: 10px;\n    }\n\n    .cookie-consent-actions .btn {\n        font-weight: 600;\n        padding: 6px 20px;\n        transition: all 0.2s ease;\n        cursor: pointer;\n        border-radius: 4px;\n        pointer-events: auto !important;\n        position: relative;\n        z-index: 10000 !important;\n    }\n\n    .cookie-consent-actions .btn-light {\n        background: #9ACD32 !important;\n        border: 2px solid #9ACD32 !important;\n        color: #000 !important;\n    }\n\n    .cookie-consent-actions .btn-light:hover {\n        background: #fff !important;\n        border-color: #fff !important;\n        color: #000 !important;\n        transform: translateY(-1px);\n    }\n\n    .cookie-consent-actions .btn-outline {\n        background: transparent !important;\n        border: 2px solid #fff !important;\n        color: #fff !important;\n    }\n\n    .cookie-consent-actions .btn-outline:hover {\n        background: rgba(255, 255, 255, 0.1) !important;\n        transform: translateY(-1px);\n    }\n\n    @keyframes slideUpCookie {\n        from {\n            transform: translateY(100%);\n            opacity: 0;\n        }\n        to {\n            transform: translateY(0);\n            opacity: 1;\n        }\n    }\n\n    @keyframes slideDownCookie {\n        from {\n            transform: translateY(0);\n            opacity: 1;\n        }\n        to {\n            transform: translateY(100%);\n            opacity: 0;\n        }\n    }\n\n    /* Mobile responsive */\n    @media (max-width: 768px) {\n        .cookie-consent-content {\n            flex-direction: column;\n            align-items: flex-start;\n            gap: 12px;\n        }\n        \n        .cookie-consent-text {\n            font-size: 0.85rem;\n        }\n        \n        .cookie-consent-actions {\n            width: 100%;\n            flex-direction: column;\n            gap: 8px;\n        }\n        \n        .cookie-consent-actions .btn {\n            width: 100%;\n            padding: 8px 16px;\n            font-size: 0.875rem;\n        }\n    }\n    \u003c/style\u003e\n\u003c/body\u003e\n\u003c/html\u003e","updated_at":"2026-03-10T14:22:57.274Z"}],"host_status":"ok"}]

DEBUG Fetching certificate for fdaa:27:6e1:a7b:2dc:ceb8:fcd1:2

DEBUG --> POST https://api.fly.io/graphql

DEBUG {
  "query": "mutation($input: IssueCertificateInput!) { issueCertificate(input: $input) { certificate, key } }",
  "variables": {
    "input": {
      "appNames": [
        "rateright-au"
      ],
      "organizationId": "ZRJPoxp8kwJ0ZuKLVmgJ2ZQ1bJH1KNpRK",
      "principals": [
        "root",
        "fly"
      ],
      "publicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBACoRdUHUvd0hVw6UGyQxdj9lP+8Ni5TXY2PQ0mWB3E",
      "validHours": 1
    }
  }
}


DEBUG {}
DEBUG <-- 200 https://api.fly.io/graphql (269.49ms)

DEBUG   <-- https://api.fly.io/graphql: {"data":{"issueCertificate":{"certificate":"ssh-ed25519-cert-v01@openssh.com AAAAIHNzaC1lZDI1NTE5LWNlcnQtdjAxQG9wZW5zc2guY29tAAAAIJqN3p+7WKp2q91VyqG5wpMsPJAHdJyNSBmn4ngYUG51AAAAIBACoRdUHUvd0hVw6UGyQxdj9lP+8Ni5TXY2PQ0mWB3EAAAAAAAAAAAAAAABAAAAHGZseTpvcmc6MTIzMTk2Njp1c2VyOjExODM5ODIAAAAPAAAABHJvb3QAAAADZmx5AAAAAGm1/mwAAAAAabYajAAAAC8AAAATYWxsb3dlZC1hcHBzQGZseS5pbwAAABQAAAAQWyJyYXRlcmlnaHQtYXUiXQAAAOcAAAAVanVnc2xpcC10aWNrZXRAZmx5LmlvAAAAkAAAAIxOT2lwVGg5RHl3c0lGcklIS2lOM25QdlpFY1JVRDJUSEJvNFZYNHAwSjNaU1Z0K0hQNDF
DEBUG   <-- https://api.fly.io/graphql: UdVo0NUJnd25HMjd3YzBSQU41dTU2SjVJQ2NKbVJJRDE3ZWlrZFVjVlZUcDR4Sit3bkJsZ1FiQlFKcWZUQmpLTDVGR1IyelhJaTQ5SE5YNE9rS0trREphbwAAABF1c2VyLWVtYWlsQGZseS5pbwAAACEAAAAdbWNsb3VnaGxpbm1pY2hhZWwuckBnbWFpbC5jb20AAAAAAAAAMwAAAAtzc2gtZWQyNTUxOQAAACDLGSVaq5YVr5eGyA/o+ITtxB+l9ko9GLcC64S8GhcfsgAAAFMAAAALc3NoLWVkMjU1MTkAAABAqZjVMpbxkG0xquCZTwkvdM8WJmh0tkZDoIimOcOtR2X88zbZ5lrSOYzc63iPrrEQsZuCyKEN39C2vjMzwPojDQ==","key":null}}}
DEBUG Keys for fdaa:27:6e1:a7b:2dc:ceb8:fcd1:2 configured; connecting...

DEBUG Connection fdaa:27:6e1:a7b:2dc:ceb8:fcd1:2 completed.

DEBUG Task manager done
DEBUG done monitoring tokens
DEBUG Config has metrics token

