{"record":{"id":"51e21f0f87174863","repo":"windmill-labs/windmill","slug":"err-request-url-err-response-status-code-er","errorCode":null,"errorMessage":"{err.request.url}: {err.response.status_code}, {err.response.text}","messagePattern":"\\{err\\.request\\.url\\}: \\{err\\.response\\.status_code\\}, \\{err\\.response\\.text\\}","errorType":"exception","errorClass":"Exception","httpStatus":null,"severity":"error","filePath":"python-client/wmill/wmill/client.py","lineNumber":133,"sourceCode":"        \"\"\"Make an HTTP GET request to the Windmill API.\n\n        Args:\n            endpoint: API endpoint path\n            raise_for_status: Whether to raise an exception on HTTP errors\n            **kwargs: Additional arguments passed to httpx.get\n\n        Returns:\n            HTTP response object\n        \"\"\"\n        endpoint = endpoint.lstrip(\"/\")\n        resp = self.client.get(f\"/{endpoint}\", **kwargs)\n        if raise_for_status:\n            try:\n                resp.raise_for_status()\n            except httpx.HTTPStatusError as err:\n                error = f\"{err.request.url}: {err.response.status_code}, {err.response.text}\"\n                logger.error(error)\n                raise Exception(error)\n        return resp\n\n    def post(self, endpoint, raise_for_status=True, **kwargs) -> httpx.Response:\n        \"\"\"Make an HTTP POST request to the Windmill API.\n\n        Args:\n            endpoint: API endpoint path\n            raise_for_status: Whether to raise an exception on HTTP errors\n            **kwargs: Additional arguments passed to httpx.post\n\n        Returns:\n            HTTP response object\n        \"\"\"\n        endpoint = endpoint.lstrip(\"/\")\n        resp = self.client.post(f\"/{endpoint}\", **kwargs)\n        if raise_for_status:\n            try:\n                resp.raise_for_status()","sourceCodeStart":115,"sourceCodeEnd":151,"githubUrl":"https://github.com/windmill-labs/windmill/blob/e474e8803ce2ff5c2df09a58dab51d45f5c922ca/python-client/wmill/wmill/client.py#L115-L151","documentation":"Raised by the Python client's get() after resp.raise_for_status() fails: any non-2xx Windmill API response is re-raised with the request URL, status code, and response body inlined into a plain error. It is a thin wrapper over httpx.HTTPStatusError, so the text is exactly what the server returned — auth failures, 404s, validation errors — and no retry is attempted here.","triggerScenarios":"Thrown at python-client/wmill/wmill/client.py:133 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the inlined response text for the API's specific error detail","Check the token and workspace for 401/403, the path for 404","Pass raise_for_status=False and handle the response yourself when you need per-status control"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"e474e8803ce2ff5c2df09a58dab51d45f5c922ca","analyzedAt":"2026-09-03T12:38:19.024Z","contentChangedAt":"2026-09-03T12:38:19.024Z","schemaVersion":2},"datasetVersion":"2026-09-08T10:18:20.063Z"}