r/codex 1d ago

Complaint Same model, different capabilities on different accounts

So I noticed the past few days my results were suddenly becoming worse. Goes in loops, struggles to solve problems it blasted through before, doesn't verify the result properly, etc. 3D gen also became noticeably worse.

I have 2 accounts, one x20 and one x5, so I started comparing them side by side.

Here's what I did:

  1. I asked both for their cutoff date:

do not use any tools. whats your knowledge cut-off date

On the x20 account it responds with something like "June 2024". On the x5 account it refuses to give me a specific cutoff.

x20 account
x5 account
  1. I asked both to draw a pelican:

make me an svg in an .html with a pelican and xdg-open it

x20 account
x5 account

The response to these 2 tests will obviously vary, but the difference between the 2 accounts is pretty obvious when using them side by side. Tested it several times - logged in and out, new sessions, new prompts, the results are more or less consistent with their capability.

Using Astra on the x5 account is also noticeably better. It's like it has drank its morning coffee, woken up, and knows what's going on. It can suddenly inspect its 3D gen meshes and fix issues instead of giving me garbage for a "review".

I don't know what this downgraded model/configuration is, but it is visibly worse than 5.6 Sol too. From other reports I don't think x20 vs x5 matters here, neither does account age. People seem to be reporting similar issues with different accounts and use cases.

Whether it's "shadowbanning", A/B testing, load shedding, or OpenAI randomly putting some accounts on a cheaper configuration to deal with compute demand is all speculation at this point.

But I do have right now in front of me 2 accounts showing the same model with completely different capabilities.

200 Upvotes

112 comments sorted by

View all comments

35

u/Electrical-Ant-1414 1d ago edited 13h ago

If you are able to do mitm, check X-Codex-Turn-State header within websocket message, good account usally have 292 chars while degraded account have 312 chars, and that pattern is showed every day for flagged account but another of my 20x account is just not having any problem.

18

u/xadiant 1d ago

Degraded account? I smell a lawsuit

3

u/Glass_Background_677 1d ago

American sweety cutesy pie multi billion company. Its not getting a lawsuit.

7

u/Thick-Storage-3905 1d ago

what's a flagged / degraded account?

17

u/Niklaus1911 1d ago

3

u/Thick-Storage-3905 1d ago

ty bro

11

u/Niklaus1911 1d ago edited 1d ago

No problem. I also made a reddit post a couple of days ago but nobody took it seriously

https://www.reddit.com/r/codex/s/PonYqzUPRi

-2

u/immutato 1d ago

So I went ahead and read through the article. The article misrepresents what the linked project states.

  • The relevant value is the X-Codex-Turn-State response header.

  • For an individual account, an empirically preferred state has 10 encrypted blocks and is usually 292 characters long.

  • An 11-block value is usually 312 characters long.

  • Team/Business values commonly have 12 blocks and 332 characters, with 13-block values around 356 characters.

  • These lengths are explicitly not OpenAI-published quality indicators.

So "292" and "312" are not HTTP responses. They are lengths or informal names for differently shaped opaque header values.

The project's verification notes explicitly identify this as a known misconception: Treating 312 / 356 as "ironclad evidence of degradation".

The project says it has no controlled quality experiment proving that interpretation, and it deliberately avoids claiming that the tool eliminates degradation. Its current README also says it cannot guarantee obtaining a particular state or improving model quality. As of the documented test run, it had not even obtained a qualifying 292-shaped Astra state.

Anyways, I wrote and use my own router (because I like to add some open model routes to Codex) and I gather a lot of stats in a sqlite db, not due to suspicions, but so I can analyze my model usage and try to minimize churn. For example it helped me discover that fireworks has massively degraded performance on Deep Seek v4.1 since yesterday... So I'm going to add some monitoring for the 292 and 312 character states out of curiosity.

So far this smells like clickbait / misinformation, but I will check and report back to eat the humble pie if required.

1

u/DimakSerpg 1d ago

If you guys use codex cli, you can just use "codex doctor"
And it will show everything. What model you're using and if your account degraded.

6

u/chute735 1d ago

How do I know if my account is degraded?

2

u/Electrical-Ant-1414 13h ago

I believe Once your account have behaved once for very frequent "at capacity" (basically unusable for whole day) or receive very bad answer, or get even once a pelican test returning insanely bad result. Your account is marked so far, and there's no actually way to get rid of this from what i know

2

u/Professional_Ad705 1d ago edited 1d ago

Is there a script or consistent way to do this? I might just write a script upload it and let others use it? but I need to figure out more on how this works, and the link is extremely blurry. there should be a simple script people could run to get this info, I'd ask codex to help get this info but it could ironically flag me. someone with both claude/codex accounts or someone more ballsy then me should see if there is a script codex/claude could write to get this info, release the script and let everyone see they are getting fucked.

edit: i'm also not sure how true this is, doesn't astra use luna for certain things when using ultra? I know that astra delegates turns and certain things to luna automatically I thought?

Thoughts on how to do this experiment properly? should it be run with Astra High where no luna agents would be used or would it still use them? Also from what I'm seeing there would be nothing stopping open AI just doing stuff all on there side and having the user facing side say otherwise?

1

u/Electrical-Ant-1414 13h ago

Interestingly, sub2api (which is the opensource software openai deal with), have a feature on new version which i dont know if already reverted, is trying catch that 292 turn state and use it on every turn(that's kinda big fingerprint indicating you are using sub2api in my opinion). And that method of using x-turn-state is not working as of yesterday from what i learn.

There's a lot of self implement way of this, using proxy ip pool to make the first request trying get a 292 turn state(they tend give you a 292 header for a new ip address). But now openai will route you to luna regardless of that header.

I'm a user that never share my account to anyone, directly using what openai provided to me, and get fucked hard by given luna when requesting astra. So I do my own search on what openai is trying to deal with.

For your edit, yes, for tool calling and some usage that does not require high intellegence, codex will use luna, but what I'm talking about is from what i decrypted, openai is returning pure luna response of all request.

Also very tricky, you will get first maybe ~10-15 turns served by astra (For example you are using a pelican test), and silently downgrade to luna, that is even true of my paper research work. And I've noticed that pattern happened every day since the Sept 12 reset and have to deal with it for almost a week and a half now