Approved app can’t be published or drafted — 400 "App image is not authorized", composer icon endpoints 404

Our app has version 1.1.0 in APPROVED status, but it can’t be published, and a new draft version can’t be created either. Both fail server-side on the same image authorization check.

Publish (Publish → Publish Version):

POST /v1/dashapi/versions/{version_id}/publish
→ 400
{"error":{"message":"App image is not authorized. Upload the image again for this app.",
          "type":"invalid_request_error","param":null,"code":null}}

Create Draft (three-dot menu on the app):

POST /v1/dashapi/apps/{app_id}/draft
→ 400   (identical error body)

Nothing is surfaced in the UI in either case — the publish confirmation modal just stays open. The failure is only visible in the console/network tab.

The deadlock: the error says to upload the image again, but image upload fields only exist inside a draft version, and draft creation is exactly what the check blocks. The approved version is read-only (“Viewing the approved version. Only draft versions can be edited.”). There is no path through the UI to satisfy the validation.

The failing asset looks like the ChatGPT composer icon. In the App Info view the Directory icon renders fine in light and dark mode, but the composer icon shows empty upload placeholders in both. The icon endpoints line up with that:

icon?icon_type=icon&shape=square          → 200
icon?icon_type=icon&shape=circle          → 200
icon?icon_type=icon_dark&shape=square     → 200
icon?icon_type=icon_dark&shape=circle     → 200
icon?icon_type=composer&shape=square      → 404
icon?icon_type=composer_dark&shape=square → 404

The version record returned by GET /v1/dashapi/apps/{app_id} still contains a populated composer_icon with a file_id and a files.openai.com URL — so it references a file the backend can no longer resolve. It 404s on read and fails authorization on write. The composer icon is a required field, which would explain why both publish and draft are gated.

Also on this version: logo_url and logo_url_dark are null, and the three screenshots entries have cdn_url: null and return 403 {"detail":"File stream access denied."}.

Because param and code are both null in the error response, the API never says which asset is at fault, so this is inference rather than confirmation.

We have emailed the review team on our approval thread. Posting here in case others have hit the same wall — has anyone found a way to clear a broken image reference on an approved version without creating a new app? There are several older threads about corrupted or unreachable app icons, but none I found with a resolution.

Same here! Just wanted to create an update for our app (plugin).

Clicking on the “Create draft” button for the existing and approved app just throws in the console:

Uncaught (in promise) UserError: App image is not authorized. Upload the image again for this app.

That’s all. Nothing happens. We cannot publish an update right now.

@OpenAI_Support Could you have a look please? Thank you.

Same here, I just want to Publish my current approved version and I cannot.

In the console I see the same error: Uncaught (in promise) UserError: App image is not authorized. Upload the image again for this app.

Same here!

Failed to load resource: the server responded with a status of 400 ()
index-Gob_ZM8h.js:80 Uncaught (in promise) UserError: App image is not authorized. Upload the image again for this app.
at m.handleResponse (index-Gob_ZM8h.js:80:141231)
at c (index-Gob_ZM8h.js:80:140071)
at async m.fetch (index-Gob_ZM8h.js:80:140161)
o33249.ingest.sentry.io/api/5415417/store/?sentry_key=a420f427111d4831b9e18763b745d20e&sentry_version=7:1 Failed to load resource: the server responded with a status of 429 ()

hey all - aware of this issue and actively working to fix it!

5 Likes

hey all this should be fixed but publication is still currently blocked. (im working on it!)

Let me know if you have issues creating updates to an existing app via new draft

Confirming the fix works on our end… We were able to create a draft and submit a new version of our plugin.

Thanks for the quick fix!

Will keep an eye out for the publication piece.

To unblock publication you’ll need to create a new draft of your existing app, re-upload the same images, and submit it for review again.

I looked into whether we could sort this out without another review but unfortunately we still need a new submission. I know our app review times can take a while and it’s super frustrating to have to go through this again after already waiting to get approved :frowning:

I’m more than happy to help out though - let me know your app name if you were affected by this and I’ll try my best to expedite the review with the team :slight_smile: (no guarantees but will try!)

Our new version has been reviewed. Awesome work! :clap:

Hi @martinauyeung thanks for your help, we’ve also re-submitted the new draft of our “Preferred Hotels & Resorts” app (not under my personal user, but under another one) in case you could expedite the review with the team. Thanks a lot in advance!

Hi @martinauyeung, we’ve re-submitted Havi ChatGPT App (v1.0.1) as a new draft after running into the same issue.

Submission ID: C-Hi2ad9k1u5ON

Would appreciate it if you could help expedite the review. Thanks!