Hunting the Kraken: The Bug That Refused to Stay Dead
Every game has that bug.
Not the funny one that launches someone into the ethers outside of dimensional travel. Not the one that accidentally gives players infinite rewards before getting patched an hour later. I'm talking about the kind that quietly settles into the background of development and refuses to leave. The one that starts showing up in bug reports, then in community videos, then in reviews, until eventually it earns something very few bugs ever do.
A name.
For us, that name was the Kraken.
Long before it became one of the most reported issues in Dimensional Double Shift, it had already become part of our everyday vocabulary. Entire conversations could be reduced to, "Yep... that's probably the Kraken." Jira tickets started getting KRAKEN stamped across the top of them. Slack channels were dedicated to tracking it. Miro boards filled with theories, screenshots, player reports, and increasingly desperate attempts to connect dots that didn't seem like they should belong together.
On paper, none of the symptoms looked related even though every piece of data was being looked at with a critical eye: liquids stopped behaving correctly, players could push their hands straight through objects. Performance steadily deteriorated, items were suddenly floating in midair. Physics simply... stopped making sense. Yet somehow, every trail eventually circled back to the same invisible culprit.
Like any good sea monster, the Kraken always seemed to disappear just before anyone got a clear look at it.
As a Senior Community Manager, it’s my job to be nosey and get to the bottom of things. It’s my job to pay attention to the community and pay attention to the devs and I thought… What better way to learn more about this beast of a topic than to have some of the team get together and share their insights. To tell the story of how it was finally cornered, I sat down with Expert Systems Engineer Marc Huet, Senior Gameplay Engineer Codey Huntting, Senior Producer Miranda Due, Vice President of R&D Daniel Perry, and our Production Director Aaron Price for what turned into less of an interview and more of a group of developers swapping war stories. Listening to them bounce memories off one another, finish each other's sentences, and occasionally laugh at months of collective frustration, one thing became abundantly clear:
This wasn't the story of one engineer finding one bad line of code. It was the story of an entire team trying to catch something lurking beneath the surface.
Here she comes to save the dayyyyyyyyy!
"It Had Tentacles"
When I asked where the name came from, Aaron didn't hesitate to jump in with some juicy lore. "I think it was called the Kraken for multiple reasons," he laughed. "One is because we believed it was one source issue that had many tentacles."
The more he explained it, the more perfect the nickname became.
"We'd get bugs logged in Jira, and I'd start putting KRAKEN in all caps at the top because we'd think, 'Yeah... that's probably another tentacle.'"
Every time the team thought they had identified a completely new issue, it somehow ended up tracing back to the same underlying mystery. Then Aaron offered the explanation that made everyone around the table laugh (because let’s face it, sometimes that’s all you can do), "It's something that disappears underwater. You can't see it anymore, you can't find it, and then all of a sudden it comes back and sinks your ship."
That pretty accurately summed up the next several months.
Marc, who spent a tremendous amount of time digging through the technical side of the issue, explained that the Kraken itself wasn't actually a bug with liquids or hands or collisions, those were simply the symptoms players experienced. The real culprit was an invalid mathematical value called NaN, shorthand for "Not a Number."
He described it in terms anyone who's ever accidentally divided by zero in math class could appreciate. Sometimes calculations produce values the computer simply can't represent. Instead of getting a usable number back, it gets... well... not a number. The real problem begins when that impossible value gets reused somewhere else.
"If you then try to use that corrupted value somewhere else," Marc explained, "it'll produce another Not a Number."
Daniel immediately jumped in. "Basically… it gets everywhere."
It was such a simple sentence, but it perfectly explained why the Kraken felt impossible to pin down. It wasn't breaking one thing. It was poisoning systems that touched other systems, creating a trail of seemingly unrelated failures that all looked like separate bugs.
From a player's perspective, it looked random.
From the development side, it looked… cryptic.
The Bug That Refused to Exist
Finding bugs usually follows a fairly familiar process. Something breaks. QA reproduces it. Developers gather logs, identify the offending code, make a fix, and verify it works.
The Kraken (sort of) politely ignored that entire process.
"We couldn't reliably reproduce it," Aaron explained when thinking back on this unique problem. "Even now, we think we fixed it, but because it was never something we could create on demand, it made it really difficult to say that definitively."
He grinned remembering one conversation that became all too common.
"We'd be like, 'The Kraken appeared.'"
"'Cool. What'd you do?'"
"'...We just played the game for a while.'"
Everyone laughed because there wasn't a better answer, that was just the reality, a reality every game dev alive knows all too well.
Miranda remembered when the team first realized just how bizarre the situation had become. The issue seemed to appear almost exclusively during their final Go/No-Go playtests (this playtest is the last step the team does to check that everything's working as intended before approving a release to go out into the wild!).
"We'd play with Leadership," she recalled, "and it happened almost every time. Then we'd play outside those sessions and... nothing."
Aaron shook his head, "Those tests are the last thing we do before we hit the release button," he added.
Imagine spending weeks preparing an update, passing every internal milestone, reaching the finish line, and then watching your biggest unresolved issue appear during the final approval meeting.
Over.
And over.
And over again.
Eventually the team reached an uncomfortable conclusion. They knew players were experiencing it, Community reports kept pouring in, reviews mentioned it, videos surfaced online. Yet internally they couldn't consistently trigger the bug themselves.
That disconnect made solving it dramatically harder than players could ever see.
Looking Everywhere
By October, the investigation had taken on a life of its own.
Miranda created a dedicated Slack channel solely for Kraken discussion. A sprawling Miro board tracked every suspected report, every theory, every player video, and every internal bug that might somehow be connected.
"We went through Discord with the help of the Community team," she said. "I pulled all the player reported issues that could potentially be Kraken related."
If you've ever wondered why developers sometimes ask strangely specific follow-up questions after you report a bug, this is why.
"What were you doing before it happened?"
"Did another player leave?"
"How long had you been playing?"
"Did anything unusual happen first?"
Those aren't random questions, they're pointed questions attempting to piece together the specific variables that could allow a bug as seemingly random as The Kraken to exist.
Customer Support and the Community team worked in tandem with playing as much of the live game as possible to see exactly what players were seeing. Months later, Miranda still lights up talking about those reports. "They're very valuable insights. I really appreciate players continuing to send those in."
That collaboration between developers and players became one of the most valuable investigative tools the team had.
Ironically, it also highlighted another challenge: the development team spent most of their time playing developer builds.
Players were playing release builds. As it turned out, that difference mattered more than anyone expected.
When Your Tools Betray You
Daniel remembers the moment everything became significantly more frustrating.
"Usually," he explained, "it's relatively easy to troubleshoot. We add logs, we use developer builds, and we narrow down the exact line of code causing the issue."
Then he smiled.
"However..." he paused dramatically, you could just see him replaying that ah-ha moment in his mind. "The issue only happens in release builds, not in debug builds."
Unity was automatically sanitizing the invalid values inside development environments, meaning the very tools designed to help investigate bugs were quietly preventing the bug from appearing.
I couldn't help laughing.
"So every time somebody tried reproducing it in a dev build..." I trailed off.
"Nobody could find it," Daniel finished.
If you've ever wondered why some bugs survive for months despite incredibly talented engineers working on them every day, this is the kind of thing that rarely makes it into patch notes.
Sometimes the flashlight you're using to find the monster is the very thing making it disappear.
The Breakthrough
Months into the investigation, the breakthrough didn't come from some cinematic "Eureka!" moment.
It came from persistence.
Codey Huntting, whose work the rest of the team repeatedly praised throughout our conversation, managed to recreate behavior that looked remarkably similar to the Kraken by forcing an invalid value into one of the game's multithreaded character systems.
When he described it, every engineer in the room immediately understood why it mattered.
I, naturally, asked him to explain it like I wasn't an engineer. Because I’m not.
He laughed before describing how character movement calculations happen in parallel because doing them one at a time would simply be too expensive. Somewhere inside those parallel calculations, the invalid value appeared to be slipping through unnoticed.
Aaron couldn't resist jumping back in with a clarifying reminder, knowing players would be reading this: "And NaN is Not a Number."
I couldn’t help but to chuckle, adding in the corniest way possible, "Not a number. Definitely not bread."
That callback to an earlier joke immediately derailed the room for a few seconds, but I think those moments are equally important. It's one of my favorite moments in the entire conversation because it's exactly what game development sounds like. One minute you're discussing multithreaded physics calculations. The next you're making bread jokes because someone briefly confused "naan" with "NaN."
Eventually the laughter settled, and the conversation returned to the breakthrough itself.
Aaron was quick to make something else clear: From the outside, it's easy to imagine one brilliant developer swooping in and solving the impossible bug.
That's rarely how it works.
"We passed this through all of our most senior developers," he said. "People who usually come in and just work magic." Each person eliminated possibilities. Each built new tools. Each narrowed the search.
Finally, Leadership made a decision.
Instead of everyone occasionally investigating the Kraken between other work, one engineer would dedicate themselves entirely to it.
"In came Codey," Aaron laughed, "with his shining sword. Not to diminish your accomplishment. You had all this history from everyone chipping away at it." That's probably the most important takeaway from this entire story.
The breakthrough belonged to everyone.
Is the Kraken Dead?
This question received the fastest response of the entire afternoon.
"No," Codey said.
Then he smiled.
"The Kraken has not actually been slain."
"So it's just sleepy?" I asked.
"It has been imprisoned with level 99 sacred magic."
The room erupted.
Miranda immediately added, "Yeah. We have it contained. It's not dead."
The distinction matters, but the good thing is that ever since a proposed fix went live, the amount of reports we’ve gotten from players relating to this issue has been zero. That’s huge!
The team still doesn't know exactly where the original invalid value originates. Marc suspects it may actually live somewhere inside Unity's physics backend rather than in game code itself.
"I don't think it's on our side," he explained. "I think it's somehow a Unity bug."
Instead of eliminating the source, the team built safeguards that stop corrupted data from cascading throughout the simulation.
Think of it less like defeating a monster and more like locking it behind a very, very strong door. Hopefully one it never figures out how to open.
The Bugs You Don't See
Toward the end of our conversation, Aaron brought up something I think players rarely get to hear.
"There are still lesser Krakens out there."
Not the game-breaking kind.
The occasional floating object.
The strange interaction that only happens once every few hundred sessions.
The kinds of bugs every game accumulates over time.
"We could probably track them down," he said, "but the amount of time and energy we'd need to invest becomes a question."
Do you spend weeks chasing a bug that appears once every hundred matches?
Or do you build the next feature players have been asking for?
It's one of the hardest balancing acts in live service development because every hour spent fixing one thing is an hour that can't be spent building something else.
"There's no game with zero bugs," Aaron said. "We'd love the game to be completely bug free."
The room didn't need to finish the sentence, everyone already knew the ending.
Why This Story Matters
As the conversation wound down, I found myself thinking less about the Kraken itself and more about everything it represented.
I've worked in games for more than two decades, and I still find myself amazed that games function at all.
The more I learn about development, the less it feels like software and the more it feels like hundreds of incredibly talented people performing an elaborate magic trick together. Every feature touches another feature. Every system depends on another system. Sometimes a seemingly harmless mathematical value quietly works its way through an engine until hands stop colliding with tables and liquids forget they're supposed to be liquid.
From the outside, fixing a bug can look obvious.
From the inside, it can take months of investigation, countless developers, community reports, engineering experiments, Unity forum deep dives, dedicated strike teams, and just enough stubbornness to refuse to let the monster win.
The Kraken became one of our most talked-about issues because players cared deeply about the experience. Some stopped playing because of it. Many took the time to report it. Others captured videos, answered follow-up questions, and unknowingly helped piece together a mystery that couldn't be solved inside the studio alone.
Since Update 1.12, conversations about those game-breaking issues have dropped dramatically.
That's exactly the outcome everyone around that table hoped for.
The best bug fixes rarely make headlines.
Sometimes they quietly disappear beneath the surface.
Hopefully this time, the Kraken stays there.