Why Do Codes Expire So Quickly?

Answers to a question players keep asking · page built

The short answer: codes die in two completely different ways, and only one of them is about time. One is a window the developer sets — a livestream code is often good for about a day. The other is a usage cap, and a code posted in public can be spent by other people within minutes of going up. If you keep finding codes that are already dead, you are almost certainly hitting the second one.

Two ways a code dies, and they need different answers

The question comes up constantly in the threads we follow, and it is usually asked as if there were one answer. There are two, and telling them apart is the whole thing: one is a clock, the other is a queue.

One live code at the top splitting into two paths. The first path is a clock running out: a livestream code with a window of roughly a day, which expires whether or not anyone used it. The second path is a usage cap: a code posted in public is scraped and claimed by other people within minutes, so it is spent long before its clock runs out. Both paths end in the same message, that the code is not valid.
A clock, and a queue. The screen gives you the same refusal for both, which is why people keep looking for a fresher list when the real problem is that the list was fresh and someone else got there first.

The clock: a window the developer sets

Some codes are deliberately short-lived, and the shortest ones are tied to livestreams. A player asking about it, in the threads we follow, quoted as written:

“Is there a reason why the livestream codes only work for 24 hours?”

The replies in that thread are not complaints — they explain the design, and the most-liked ones agree with each other:

That is the honest answer to half of the question: the window is not an accident and it is not going to be extended for you. Twenty-four hours is roughly the ceiling for the livestream codes we track, and some of them have been shorter than that.

The queue: a code posted in public is spent in minutes

The other half has nothing to do with time, and this is the one that catches people who are doing everything right. A code shared in a public post does not stay available for its full window, because other people — and, in the words of the players who watch this happen, automated ones — get there first. From the threads we follow, quoted as written:

“Never actually share codes in the description of the post, there constantly bots scraping Reddit for any codes and they instantly become unavailable”

“Before anyone else tries, they have already been used by someone else.”

“They all got used already thanks for sharing!”

“already used, some lucky bug was quick!”

Four people, one thread, the same finding. A code can be live, correctly copied and completely correct — and still refused, because it is single-use and the cap was reached before you saw the post. That is not a stale list. It is a list that was accurate when it was written and had already been spent by the time you opened it.

The other side of the argument, which is also right

In the same threads, the people who disagree with the complaint make a point worth keeping. Their position is that the window is generous if you move, and the most-liked replies all say the same thing:

“It takes less than a minute to open up the pinned Reddit thread and claim them. Mods already did all the busywork for you.”

“It’s really fast and easy to redeem codes from the Hoyolab app and claim them in game whenever you log in.”

“It takes you less than 5 minutes to redeem them. It can not get any easier than that”

“You could have redeemed them on your phone while sitting on the toilet. You don’t even have to open up the game.”

Both sides are describing the same system. The window is real, and the queue is real, and the only lever you have is how fast you get to a code after it appears. That is why the companion app keeps coming up: you can claim from a phone without launching the game, which is the difference between being inside the window and being behind the queue.

One more line from that thread, because it is the most direct version of the same point: “This one point is why I haven’t uninstall Hoyolab”.

The third reason, which is not the code at all

There is a failure mode that gets filed under “codes expire too fast” but has nothing to do with expiry: people simply do not know a code went up. In the threads we follow, the pattern is not “it was already gone” — it is “I did not know”:

“I forget it each time I log in. Hopefully I won’t forget next time because time is running out”

“i took too long :(”

“I had completely forgotten about these, thanks OP!”

“Had no idea about these. Thanks OP!”

Notice what those players are thanking the poster for. Not for a rare code — for the reminder. If a thread whose whole job is saying “these are still up, go and claim them” keeps getting that reply, then a large share of the misses are not the system’s fault, and no faster clock or bigger cap would fix them.

What actually changes your odds

What we cannot tell you about this

We cannot see how many times a code has been claimed or when its cap was reached. Nothing on this page tells you whether your attempt was the one that hit the limit — that is recorded on the game’s side. What we can do is keep a date and a status on every code we track, so you can tell a list that is being maintained from one that was written once and abandoned. That is what the status column is for on our Genshin Impact list and on the Star Rail, Wuthering Waves, Zenless Zone Zero, Honkai Impact 3rd and Raid: Shadow Legends lists.

The 24-hour figure is what the sources and the players we follow describe, not a term the developer publishes as a rule. We are reporting it as what it is: the window people observe, which can be shorter.

Frequently asked questions

Why do livestream codes expire in about a day?

Because the window is the point. Players in the threads we follow put it as an incentive to watch the stream, and the same threads note that the window used to be closer to 18 hours before it was widened. It is a design choice, not a fault.

Why was a code already used when it was only just posted?

Because codes are single-use and a public post is read by more people than the code has claims available. In the threads we follow, players who post codes are warned against putting them in the body of a post at all, on the grounds that automated scrapers take them within minutes.

Does that mean I should not use public code lists?

No, it means you should use them fast and expect the ones that have been sitting there for a while to be gone. A maintained list with a date on every row at least tells you when it was last looked at, which is the thing an undated list cannot tell you.

Is there a way to claim codes without opening the game?

On the games where a companion app and a redemption website exist, yes. That is the route the players in those threads recommend most, and the reason is speed rather than convenience.

Can a code expire even if nobody used it?

Yes. That is the clock path. A time-limited code closes on its own schedule, whether or not anyone has claimed it, so a code nobody used and a code everybody used can look identical when you try it.

How do I tell which of the two I hit?

You usually cannot, from the message alone. What you can do is check the age of the code: if it went up with a livestream and it is more than a day old, it is the clock. If it is hours old and was posted publicly, assume it is the queue.