[bug]: Public API asset upload crashes with 500 (`S3Storage.__init__() got an unexpected keyword argument 'is_server'`)
@vihar is already working on this.
Since Aug 6, 2026.
- Dominant language
- TypeScript
- Stars
- 59.6k
- Forks
- 5.8k
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 49
Description
Is there an existing issue for this?
- I have searched the existing issues
Current behavior
Calling the public API's generic asset upload endpoint (POST /api/v1/workspaces/{slug}/assets/) always returns 500 Internal Server Error instead of the expected presigned upload response. The server logs show a TypeError raised while instantiating S3Storage:
TypeError: S3Storage.__init__() got an unexpected keyword argument 'is_server'
File "plane/api/views/asset.py", line 581, in post
storage = S3Storage(request=request, is_server=True)
S3Storage.__init__ (in plane/settings/storage.py) only accepts request, not is_server. The internal (session-based) equivalent in plane/app/views/asset/v2.py correctly calls S3Storage(request=request) without that kwarg and works fine — this looks like a regression specific to the public API's GenericAssetEndpoint.
What I expect: a 200 response with upload_data / asset_id / asset_url, so file uploads via the public API (personal access token) work the same way as through the web app.
Steps to reproduce
- Create a personal API token for a workspace.
- Run:
curl -X POST "https://<host>/api/v1/workspaces/<slug>/assets/" \ -H "X-Api-Key: <token>" -H "Content-Type: application/json" \ -d '{"name":"test.jpg","type":"image/jpeg","size":12345,"project_id":"<uuid>"}' - Response is
500, see server log above.
Environment: Self-hosted
Variant: Self-hosted (Community Edition, AIO Docker image)
Version: v1.4.0
Browser: N/A (public API, no browser involved)
Environment
Production
Browser
Other
Variant
Self-hosted
Version
v1.4.0
Contributor 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.
Assessment
This issue has not been assessed yet.