Builder republish reports a JSON decode error on a successful bodyless 201 response
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 72/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- python
- Domain
- backend-api-design
Research direction
Start in _make_config_api_request in airbyte/_util/api_util.py, which currently skips JSON decoding only for HTTP 204. Check how it handles a successful 201 with an empty body and where response.json() is called. Done when an empty body on any successful Config API response returns {} and nonempty bodies still parse as JSON, with a test covering the bodyless 201 case.
Written by the indexing model from the issue text.
Description
Summary
Republishing an existing Connector Builder project through the Cloud MCP tools reports a tool error even though the new manifest version is published and activated.
Details
- Republishing calls
POST /v1/declarative_source_definitions/create_manifest(create_declarative_manifest_versioninairbyte/_util/api_util.py). - The API returns HTTP 201 with an empty body for this endpoint.
_make_config_api_requestonly skips JSON decoding for HTTP 204, so it callsresponse.json()on the empty 201 body and raisesrequests.exceptions.JSONDecodeError.- The MCP tool surfaces this as a failure, so an agent (or user) may retry or report a failed publish that actually succeeded.
Expected behavior
Any successful Config API response with an empty body is treated as {}; nonempty bodies are still parsed as JSON.
Context
Found while validating the Connector Builder MCP tools for GA. The secret-preservation bug found in the same validation is tracked separately.
Requested by @aaronsteers.
Posted by Devin, on behalf of @aaronsteers.
- Dominant language
- Python
- Stars
- 342
- Forks
- 82
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 74
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from airbytehq/PyAirbyte
-
docs(mcp): explain conflicting destination streams in `create_connection_on_cloud` and point to `table_prefix`Possibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
airbyte-mcp-beta enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Maintainers usually reply within 1 day
-
Postgres cache rounds large numeric-string IDs: `pd.read_json` re-types string columns on loadPossibly taken A pull request linked to this issue is open or already merged. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
All issues in airbytehq/PyAirbyte
Similar issues
-
Import errors are swallowed: PerthImplicitWatermarker silently becomes NonePossibly taken @JonRC claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
resemble-ai/Perth#23 ·
-
correction metadata
Difficulty 2/5 Under an hour Newbie friendliness 65/100
acl-org/acl-anthology#10753 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
earthtojake/text-to-cad#758 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 1-3 hours Newbie friendliness 70/100
DataTalksClub/faq#545 ·
Maintainers usually reply within 2 days
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
Maintainers usually reply within 1 day