Hi team,
We are encountering consistent issues when uploading media files, specifically GIFs and images over the past 3-4 months.
For GIFs, uploads fail entirely regardless of file size. We tested multiple GIF files with different sizes and sources, and none were successfully uploaded.
For images, the behavior is inconsistent. The issue does not appear to be related to file size, permission level, or file format. In several cases, larger files uploaded successfully, while smaller files of the same format failed. Also, I have the higher permission level (manager).
We also observed that when an upload error occurs, slightly modifying the image, such as changing the file size or cropping it, sometimes allows the same image to upload successfully. This happens across PNG, SVG, and JPG formats. We are aware of the media file size limits ( Media file size limits ).
Any additional diagnostics would be helpful.
Thanks in advance.
Are you self hosting? If so, dig into your server logs. And it’d be a good idea to include some more details about your setup if asking for help.
The page you linked is specific to the Ghost.org product. Are you hosting with them? If you’re in managed hosting, you should contact your host.
2 Likes
Sorry for the late response, yes, I confirmed that it was self-hosted and was able to check the error log. It says as follows:
2026-01-25 09:21:56.953
----------------------------------------
2026-01-25 09:21:56.953
2026-01-25 09:21:56.953
dba4ad80-f983-11f0-aa8c-1f2e39121a48
2026-01-25 09:21:56.953
Error ID:
2026-01-25 09:21:56.953
2026-01-25 09:21:56.953
Too many attempts.
2026-01-25 09:21:56.953
2026-01-25 09:21:56.953
[2026-01-25 00:21:56] ERROR "GET /learn-api/ghost/api/content/posts/?key=116d1afcdf52fefb896b89a408&filter=visibility%3Apublic%2Btag%3Atrading-api%2Btag%3Ause-cases&include=authors%2Ctags&order=published_at+DESC&limit=6&page=1" 429 0ms
2026-01-25 09:21:56.952
2026-01-25 09:21:56.952
at /var/lib/ghost/versions/5.96.2/node_modules/cors/lib/index.js:224:17
2026-01-25 09:21:56.952
at cors (/var/lib/ghost/versions/5.96.2/node_modules/cors/lib/index.js:188:7)
2026-01-25 09:21:56.952
at next (/var/lib/ghost/versions/5.96.2/node_modules/express/lib/router/index.js:280:10)
2026-01-25 09:21:56.952
at Function.process_params (/var/lib/ghost/versions/5.96.2/node_modules/express/lib/router/index.js:346:12)
2026-01-25 09:21:56.952
at /var/lib/ghost/versions/5.96.2/node_modules/express/lib/router/index.js:284:15
2026-01-25 09:21:56.952
at Layer.handle [as handle_request] (/var/lib/ghost/versions/5.96.2/node_modules/express/lib/router/layer.js:95:5)
2026-01-25 09:21:56.952
at Route.dispatch (/var/lib/ghost/versions/5.96.2/node_modules/express/lib/router/route.js:119:3)
2026-01-25 09:21:56.952
at next (/var/lib/ghost/versions/5.96.2/node_modules/express/lib/router/route.js:149:13)
2026-01-25 09:21:56.952
at Layer.handle [as handle_request] (/var/lib/ghost/versions/5.96.2/node_modules/express/lib/router/layer.js:95:5)
2026-01-25 09:21:56.952
at contentApiKey (/var/lib/ghost/versions/5.96.2/core/server/web/shared/middleware/brute.js:71:11)
2026-01-25 09:21:56.952
at module.exports.<anonymous> (/var/lib/ghost/versions/5.96.2/node_modules/express-brute/index.js:47:3)
2026-01-25 09:21:56.952
at keyFunc (/var/lib/ghost/versions/5.96.2/node_modules/express-brute/index.js:39:41)
2026-01-25 09:21:56.952
at module.exports.<anonymous> (/var/lib/ghost/versions/5.96.2/node_modules/express-brute/index.js:82:15)
2026-01-25 09:21:56.952
at MemoryStore.get (/var/lib/ghost/versions/5.96.2/node_modules/express-brute/lib/MemoryStore.js:38:35)
2026-01-25 09:21:56.952
at module.exports.<anonymous> (/var/lib/ghost/versions/5.96.2/node_modules/express-brute/index.js:146:44)
2026-01-25 09:21:56.952
at failCallback (/var/lib/ghost/versions/5.96.2/core/server/web/shared/middleware/api/spam-prevention.js:357:29)
2026-01-25 09:21:56.952
TooManyRequestsError: Too many attempts.
2026-01-25 09:21:56.952
2026-01-25 09:21:56.952
----------------------------------------
It says HTTP 429, which means rate limited, right? Do we have a cap on how many media we can upload? I only updated 4 images in 1 mins.
You are self hosting, so you can set your own caps. But no, the default should not stop you from uploading a lot more than 4x per minute
I see. Thanks for the info! I’ll check with the engineering team internally to investigate this further