# 6 sad squid snuggle softly

> Whenever a problem causes Asana to crash, our error-reporting system automatically generates a memorable, goofy phrase you can use when reporting the issue.

Source: https://asana.com/inside-asana/6-sad-squid-snuggle-softly

## 6 sad squid snuggle softly

Many of our users are probably familiar with the “unique error phrase” that shows up whenever our application crashes in some way. These have a curious form, and we wanted to share the motivation behind them.

When diagnosing problems, it’s helpful to be able to associate a specific customer incident with information in the logs. Whenever our app crashes, we generate a unique ID for the incident, which is shown to the customer so that they may include it when they write in to us about a problem. This is not a novel practice—it’s actually fairly primitive—but given an ID our staff can jump directly to more technical information on the customer’s issue, letting us classify and respond to it more quickly.

What is novel in Asana is the form these IDs take. In most other applications, a customer-facing ID is usually a long jumble of numbers and/or letters. There are lots of small, subtle drawbacks to representing a number to a human this way, and so for the sake of curiosity—and to add a little levity to an otherwise frustrating situation—we tried something different.

### Sentences from numbers

Imagine representing 32 bits of information (numbers up to 4 billion) as a sentence instead of a jumble of digits. Each sentence can have the same predictable structure, and the number will be used to choose words from a dictionary to fill in that structure—like Mad Libs.

One possible sentence structure can be: count + adjective + plural noun + verb + adverb, e.g. “6 sad squid snuggle softly.” We can divide the bit-space of the number like so:
- 5 bits for the count (2-33, so it is always plural)
- 7 bits for the adjective (one of 128 possibilities)
- 7 bits for the plural noun (one of 128 possibilities, which we made all animals just for fun)
- 7 bits for the verb (one of 128 possibilities)
- 6 bits for the adverb (one of 64 possibilities)

Now, given a dictionary containing words categorized in this way, we can generate 4 billion unique (and sometimes very memorable) sentences. In Asana, the ID used to generate the error phrase is random, so the same sentence is unlikely to occur twice.

### Automatic issue tracking

Since we care deeply about providing users with a stable experience, we have put major effort into a system which records problems that occur _anywhere_ in our application, whether on our servers or in customers’ browsers. It collects a bunch of useful information about the crash (stack traces, log snippets, application state, user and session information, etc.) and automatically groups similar problems and imports them into an internal Asana task list, pictured below.

Having all of the issues in Asana allows us to see aggregate information on each problem, such as the number of occurrences and different users it has affected. From there we can tag, prioritize, and assign it so it gets fixed. This system makes Asana a very effective issue tracker for us, as each issue has lots of important metadata associated with it—including, of course, a way to find it from a unique error message reported by a user.

So, in the event you experience a crash, rest assured it’s already on the list for our team to act on. And we hope you at least get a gem as a consolation prize. 12 soft kittens cuddle warmly. Or 8 mad orcs stomp loudly. Or .. you get the idea.

- [Improving Asana’s Pageload Performance](/inside-asana/improving-asanas-pageload-performance)

Engineering

#### Senior Engineering Manager

Asana serves 2.5 million pageloads a day, peaking at 3.5 million. Each one is a user's first impression of the product — the moment between intent and action — and for a tool team ...

- [How Asana Built A Resilient ID Allocation System](/inside-asana/how-asana-built-resilient-id-allocation)

Engineering

Every object in Asana—every task, project, comment, and attachment—needs a unique identifier. At Asana, these IDs are sequentially incrementing integers, allocated in blocks from ...

- [The Athletic Position](/inside-asana/the-athletic-position)

Engineering

I. Before the Ball Leaves their StringsThere is a moment from the 1988 French Open final that most people who talk about tennis haven’t had to think about carefully.Steffi Graf pl ...

- [How Asana leverages AWS Inspector for total visibility over infrastructure vulnerabilities](/inside-asana/asana-leverages-aws-inspector-visibility-infrastructure-vulnerabilities)

Engineering

#### Software Engineer

Scanning for vulnerabilities across multiple AWS accounts, eliminating noise, and turning vulnerability findings into actionable work is a challenging but important undertaking. A ...

- [6 sad squid snuggle softly](/inside-asana/6-sad-squid-snuggle-softly)

Engineering

Many of our users are probably familiar with the “unique error phrase” that shows up whenever our application crashes in some way. These have a curious form, and we wanted to shar ...

- [Engineering](/inside-asana/engineering-spotlight)
