Artifact critiqueFoundationalQuality, Cost & Token Economics / Latency budgets and UX tradeoffs / #17

Critique a design that shows a spinner for an unbounded amount of time.

A bare spinner says one thing, forever: "something is happening." It never says how much, how long, or whether it is still true. For fifteen seconds that is a fine thing to say. Past about ninety seconds it stops being reassurance and starts being a screen that looks exactly the same whether the job is nearly done or already dead.

The direct answer
An unbounded spinner is a broken design because it gives the same signal at second two and second two hundred. Replace it with a bounded state: a real progress line tied to actual work completed, a rough time estimate, and a cancel button, and make the upload itself content-hashed so a second click on the same file reattaches to the running job instead of quietly starting a paid second one. The wait doesn't get shorter. It gets legible, and that is the whole difference between someone trusting it and someone working around it.
Do this, in order
  1. Replace the bare spinner with real, bounded progress tied to actual completed work, plus a rough time estimate.Why: a person can tolerate a long wait if they can see it moving. They cannot tolerate a wait that looks identical whether it's working or dead.
  2. Add a cancel button once the wait crosses the point where most jobs would already be done.Why: without an exit, the only "cancel" a person has is closing the tab and starting over somewhere else, which costs more than the button would have.
  3. Hash the upload by content and dedupe on the server, not just the client.Why: this is what stops a second click from silently becoming a second paid inference job with its own, possibly different, answer.
  4. Track time-to-first-progress-signal as its own number, separate from total job time.Why: total time can sit inside budget for months while the number that's actually costing you duplicate jobs never shows up on that dashboard.
  5. Leave the plain spinner alone on anything that reliably finishes in under ten or fifteen seconds.Why: nobody doubts a wait that short, and building progress UI for it is effort spent where trust was never actually at risk.

How to answer this, stage by stage

Nobody is grading whether you know what a spinner is. They're grading whether you can name the exact moment a "still working" signal stops being believable, and fix that moment instead of just making the job faster.

1
Scope it to one real product before critiquing in the abstract
Say it like this
"Let's ground this in one product. Palimpsest is the AI document and PDF summarizer inside Greywolde Research. You upload a report, it hands back a structured summary: key points, risks, open questions. Zara Kildare is the product manager who owns its reliability, and she uses it herself most mornings before client calls."
Why this works
An abstract "spinners are bad UX" answer turns into a design-101 lecture fast. One product and one person keep it concrete enough to actually critique.
2
Reframe the question before answering it
Say it like this
"This isn't really asking me whether spinners are ugly. It's asking whether I know that 'still working' and 'stopped working' look identical on a screen with no progress signal, and that a person will resolve that ambiguity themselves the moment it costs them something, in whatever way is cheapest for them."
Why this works
Stops you giving the shallow answer, "add a progress bar," without saying what specifically breaks without one.
3
Give the one decision, plainly
Say it like this
"Here's the fix. Bound the spinner: show real progress from actual chunks completed, give a rough time estimate, and add a cancel button once the wait passes where most jobs already finish. Then hash the upload so a second attempt at the same file reattaches to the running job instead of paying for a second one."
Why this works
This is the direct answer, said in one breath, before any story about how it went wrong.
4
Prove it with the failure, cut to four sentences
Say it like this
"Here's what happens without it. Palimpsest's diligence packs ran 80 to 160 pages and took three to six minutes to summarize, with the same bare spinner that had shown fine for two-page memos. Zara, twenty minutes from a partner call, watched it spin past ninety seconds with zero signal, and opened a second tab to upload the same file again, just in case. Both jobs finished, minutes apart, with two summaries worded slightly differently, and thirty-four percent of large-document jobs were quietly getting duplicated like that every week, without a single support ticket."
Why this works
Shows a real, countable cost, not just "the UX felt bad."
5
Say what you'd measure going forward
Say it like this
"I'd track the duplicate-job rate on large documents as its own number, separate from total job volume. Total jobs completed per week looked healthy, even growing, the entire time this was happening. Growth was hiding the exact thing that was going wrong."
Why this works
Shows you know a healthy-looking aggregate number can be quietly built out of waste.
6
Say what you'd leave alone
Say it like this
"I wouldn't touch the spinner on a two-page memo. That finishes in under fifteen seconds, nobody has time to doubt it, and building a progress line for it is effort spent on a wait that was never actually breaking trust."
Why this works
Shows judgment instead of applying one expensive fix everywhere at the same cost.
7
Close on the decision, not the story
Say it like this
"So: bound the wait with real progress and a cancel option, dedupe the upload so a second click can't silently double the bill, and expect a bare spinner to read as broken well before a job would ever have actually failed."
Why this works
Ending on the rule, not the anecdote, is what makes this sound like a method you'd reuse on the next spinner, not a one-off story.

Let's learn

What does a screen actually tell you when nothing on it has changed for ninety seconds?

Palimpsest is the AI document and PDF summarizer built into Greywolde Research, an advisory firm. Analysts upload a report, a filing, a diligence pack, and Palimpsest hands back a structured summary: key points, flagged risks, open questions, in about the time it takes to pour a coffee.

At first, almost every upload was a five to fifteen page memo. Palimpsest read it in one pass, no splitting required, and had a summary back in twelve to eighteen seconds. Nobody noticed the wait. You uploaded, you glanced away, it was done.

Knowledge spark: why long documents take so much longer A model can only read so much text in one pass before answers get sloppy, so a long PDF gets split into chunks, summarized chunk by chunk, then merged into one final summary. A five page memo is one chunk. A hundred and forty page diligence pack is fourteen or more, each one its own real model call, run in sequence to stay under rate limits. That's why the wait isn't just longer, it's a different shape of job entirely.

Then Greywolde's diligence team started uploading the real thing: eighty to a hundred and sixty page vendor packs, sometimes with scanned appendices bolted on. Typical time to a finished summary went from twelve seconds to somewhere between three and six minutes, depending on how busy the queue was.

Six minutes doesn't sound like a disaster next to a ten minute budget the team had set for "acceptable." Every dashboard said the product was healthy. Jobs completed per week kept climbing.

Here's the turn: the extra minutes were never really the problem. The problem is what a person does with a spinner that gives off exactly the same signal whether it's on chunk two of fourteen or stuck on chunk one forever.

Hand sketched comparison titled a slow spinner is not a dial creeping up. Left panel a gauge icon labeled the doc gets longer, caption 12 seconds becomes 90, feels only a little worse. Right panel a question mark box icon labeled the spinner outlasts patience, caption one flip, keep waiting or open a new tab and upload again.
The wait growing from twelve seconds to ninety does not feel proportionally worse. It feels fine, then it feels broken, with almost nothing in between.
Hand sketched labeled diagram titled one PDF, two paid jobs, one confused analyst. Center icon a document labeled 145 page report, uploaded twice. Four callouts around it: job A, tab one, still running. Job B, tab two, started at 90 seconds. Two summaries, worded differently. Nobody flags it for weeks.
Nothing told the backend to stop job A. It kept running, unseen, while job B started fresh on the exact same file.
Large documents uploaded twice within 90 seconds, before and after bounded progress shipped
34% 2% Bare spinner Bounded progress
Duplicate-job rate
One in three large-document jobs was getting uploaded twice while the spinner gave no signal at all. Once progress and a cancel button shipped, that fell to about one in fifty.
We did not just double the compute bill. We doubled it on exactly the jobs that already cost the most to run once.

At its worst, this trains an entire team to distrust a working feature, quietly, with no ticket ever landing to say so. And it isn't just a cost line. Two runs of the same document, sampled independently, do not always land on the same wording in the risk section. When both summaries showed up, Zara had no way to know which one to trust before a call, and once, the version she skimmed first was the one that hadn't caught a capped-indemnity clause the other version had flagged.

Weekly wasted inference spend on duplicate summarization jobs
$2,400 $0 bounded progress ships $1,050 $1,700 $2,400 $780 $220 $140 wk -3 wk -2 wk -1 wk +1 wk +2 wk +3
Before the fixAfter the fix
Wasted spend on duplicate large-document jobs climbed to about $2,400 a week as diligence packs became a bigger share of uploads. Three weeks after bounded progress and dedupe shipped, it was down to about $140. The model never changed.
Hand sketched comparison titled patience is a switch, not a dial. Left panel a gauge icon labeled what we assumed, caption patience fades slowly like a dial turning down. Right panel a plain square icon labeled what actually happens, caption one flip, near ninety seconds, waiting becomes duplicating.
This is the whole answer to what an unbounded spinner gets wrong. Trust does not fade a little at a time as the wait grows. It holds, then it flips, at one point nobody had marked on purpose.
The choice that mattered Palimpsest's earliest frontend spec called for one plain spinner tied to "job submitted" and "job complete," with nothing shown in between, because exposing "chunk 3 of 14" felt like leaking backend plumbing onto a clean screen. That was a fine call when almost every job was one or two chunks and finished in under twenty seconds. It stopped being fine the week diligence packs, ten times longer than anything in the beta, became a real share of what got uploaded.

Before landing on real per-chunk progress, the team considered a cheaper fix first: a hard ninety-second timeout that showed an error and a retry button. It was rejected. A timeout kills jobs that are genuinely still working, just slow because the queue is backed up, and it moves the exact same duplicate-job problem onto a button the product itself is now telling people to press.

What I'd leave alone: the plain spinner on a one or two page memo. Those finish in well under fifteen seconds. Nobody watching one that short has time to doubt it, so building progress UI for it spends effort where trust was never actually at risk.

The lesson: a spinner isn't slow or fast. It's legible or it isn't. The wait can stay exactly as long as the job genuinely takes, and the product can still flip from feeling broken to feeling handled, purely from whether the screen shows any real sign of the work underneath it.

Now here is the same thing as a story

Read the short version above when you're in the room. Read this one when you want to feel why a healthy-looking usage chart can sit directly on top of a real, growing waste of money.

Zara Kildare spent four years as a research analyst before she became the PM who owns Palimpsest. Back then, handed a hundred page filing an hour before a client call, she could find the one liability clause that actually mattered in under three minutes, by eye, while everyone else in the room was still finding the table of contents. That instinct is why she was the obvious pick to own the tool built to do a version of that job automatically, and she still uses Palimpsest herself most mornings, partly because it's genuinely faster and partly because a PM who never opens her own product stops noticing what's actually true about it.

For months, Palimpsest was the easy part of her morning. Upload a memo, glance at her inbox, look back twelve seconds later to a finished summary. She never thought about the spinner. There was nothing to think about.

Hand sketched horizontal timeline titled the habit thinning, in three beats. Milestone one, short reports, caption 12 seconds, trusts it without looking. Milestone two, diligence packs arrive, caption 90 seconds plus, still waits, spinner unchanged. Milestone three, emphasized, the Wednesday call, caption duplicates the upload, keeps doing it every time.
The trust didn't survive on patience alone. It survived on the wait staying short enough that patience was never actually tested.

Then the diligence team started uploading the real packs, and Zara, like everyone else, kept tapping upload without a second thought. Most of those still finished inside two or three minutes. Long enough to notice, short enough to wait out.

On a Wednesday, with a partner call in twenty minutes, she uploaded a hundred and forty-five page vendor pack with two flagged appendices. She opened her notes app to start prepping talking points and glanced back at ninety seconds. The spinner was exactly the same as it had been at second one. No percentage, no line of text, nothing. She'd never had a reason to count seconds against Palimpsest before, so she wasn't really counting now either, she just felt the specific wrongness of a screen that hadn't changed in a minute and a half.

She opened a new tab, found the same PDF in her downloads folder, and uploaded it again. Just in case the first one had died.

We did not just cost her ninety seconds twice. We handed her two different answers to trust before a client call, with no way to tell which one was right.

Both jobs finished, four minutes apart. Two summary cards sat in her workspace for the same file. She skimmed the first one, built her talking points around it, and walked into the call. It was only that evening, cleaning up her workspace, that she opened the second card and found a line the first one didn't have: a cap on the vendor's indemnification clause, flagged clearly, sitting in the summary she never read before the meeting.

Eight months earlier, in the frontend spec meeting for Palimpsest's very first version, an engineer had proposed showing which chunk was being summarized as it happened. It got cut. Exposing internal chunking felt like clutter on a clean screen, and back then almost every document was one chunk, done in under twenty seconds. Nobody in that room was thinking about a hundred and forty page filing. Nobody had reason to yet.

Zara didn't find the duplicate-job problem on a dashboard. She found it by living it, then went looking, and learned that thirty-four percent of large-document jobs across the whole diligence team had been quietly doubling up for weeks, with not one support ticket to show for it, because nothing about it looked like an error. It looked like people working.

Run the same Wednesday again, with one change: the moment she uploads, the spinner is replaced by a real line, "Summarizing section 4 of 14, about 2 minutes left," pulled from chunks actually finished on the backend. She keeps typing her notes. At the ninety second mark it reads section 9 of 14. She never opens a second tab. The job finishes in three minutes and forty seconds, one summary, indemnification cap flagged and sitting right there before the call starts.

One design made the wait look identical whether it was working or dead. The other lets you watch it move.

What I'd tell myself, back in that first spec meeting: cutting the progress line wasn't wrong for the product that existed that day. It was wrong for the product everyone already knew they wanted to build next. Ask how long the real jobs will take before deciding the wait never needs a signal, not how long today's demo document takes.

FLIPS, and the one letter that has no middle setting

Not a list of reasons spinners are annoying. FLIPS names the exact moment "still working" stopped being believable, and asks which old choice made that moment the only option on the table.

Hand sketched numbered list titled FLIPS one line each. F, find the person, Zara Kildare, PM who trusts Palimpsest with her own reads. L, locate the habit, stops opening the raw PDF before a call. I, identify the flip, keeps waiting or opens a new tab and uploads again. P, pinpoint the old decision, one bare spinner built for two chunk jobs. S, show the replay, one real progress line, one job, no duplicate spend.
Five steps. Only the I step has no middle setting once the spinner ran past where a job would normally already be done.
FFind the person. Whose morning is this?
Zara Kildare, the product manager who owns Palimpsest's reliability at Greywolde Research, and who could find the one clause that mattered in a hundred page filing before she ever touched a line of the spec.
Name her first, or this stays a description of chunked inference instead of a decision someone makes with a partner call in twenty minutes.
LLocate the habit. What did she stop doing because it worked?
Reading the raw document before a meeting. When a summary took twelve seconds, she'd upload it and keep moving, never once watching the spinner to see if it was actually doing anything.
Not needing to double-check is the real thing a fast tool builds. The twelve seconds saved is just what that trust looks like from outside.
IIdentify the flip. What verb snaps?
Keeps waiting, trusting the job is still working, or opens a second tab and uploads the same file again, assuming it broke. No setting in between once the spinner ran past the point where a job would normally already be done. Once it worked once, she did it on every long document after.
This is the flip the fix has to design against. Not "three minutes is slow," but "a spinner that hasn't changed in ninety seconds looks exactly like a spinner that died in the first ten."
PPinpoint the old decision. Which choice only made sense before?
The frontend showed one plain spinner from "submitted" to "complete," with no progress state exposed in between, because almost every job in the beta was one chunk and finished in under twenty seconds.
Small, reasonable, and made eight months before it mattered. That's what makes it a real reversal, not an obvious mistake.
SShow the replay. Same bad morning, new design.
Bounded, the progress line shows real chunk counts within a second of upload. She never opens a second tab. The duplicate-job rate on large documents falls from 34 percent to about 2 percent within three weeks, and wasted weekly spend falls from about $2,400 to about $140.
Counted, not vague. Percentages and dollars against percentages and dollars, not "it feels more reliable now."

Three things worth stating directly, since this is where the real judgment sits. The rejected alternative was a hard ninety-second timeout with a retry button: cheaper to build, and wrong, because it kills jobs that are genuinely still working during a busy queue, and hands the exact same duplicate-job problem to a button the product itself now tells people to press. The AI-specific failure worth naming is that two runs of the identical document are not guaranteed to produce the identical summary, since the model samples with real randomness and a duplicate job is a full second inference pass, not a cache hit, so the reduce step can word or even weight the risk section differently between two runs of one unchanged file. The guardrail is content-hash dedupe on upload: a second submission of the same file reattaches to the one canonical running job, or the one canonical finished result, instead of ever producing two outputs of the same input that can quietly disagree with each other. And the trade-off is real, not free: hashing uploads and streaming per-chunk progress cost engineering time a bare spinner never needed, accepted on purpose because duplicate waste on the most expensive class of jobs was running higher every week than the whole fix cost to build once.

And if you want to be sure it really works, try it somewhere else

Same five letters, an industry with no PDFs and no chunking at all, and this time the person doesn't work around the wait. She stops showing up for it.

Hand sketched comparison titled same five letters, one different snap. Left panel a document icon labeled Zara, at Greywolde, caption waits then opens a second tab and uploads again. Right panel a person icon labeled Frankie, at Wrenholt, caption stops opening Corvei at all for the urgent reads.
Same unbounded spinner, same missing signal. One person routes around it. The other one stops showing up for the tool at all, which is worse.

Wrenholt Radiology Partners runs Corvei, an AI assistant that pre-reads chest and abdominal CT scans and drafts preliminary findings while the on-call radiologist works through the rest of the overnight queue. Dr. Frankie Herron covers ER overflow reads at Wrenholt from midnight to eight, and can spot a subtle bleed on a scan most residents would need a second look to catch.

The case for trusting it as built: a routine chest scan, a handful of slices, gets Corvei's draft back in five or six seconds. Frankie glances at it, agrees or flags it, and moves to the next case in the queue.

The case against it: a large, multi-phase abdominal study with hundreds of slices can genuinely take Corvei sixty to ninety seconds to process. The screen shows the same bare spinner either way. No slice count, no estimate, nothing.

The decision Wrenholt would take back Corvei's team decided early on to say nothing while a study processed, reasoning that a radiologist under a real clock didn't need backend detail, just a result. That was fine when nearly every study finished in under ten seconds. It stopped being fine once large, multi-phase studies became a real share of the overnight queue.

Frankie didn't start duplicating requests, the way Zara did. She did something quieter and worse: on the busiest nights, when a scan sat spinning past the point where routine ones already had an answer, she stopped opening Corvei for that case at all and just read the raw images cold, the way she always used to. It cost her nothing to skip a tool that gave her no way to tell if it was still coming. Within a few months, her open rate on Corvei for the urgent, multi-phase reads, exactly the cases where a second read matters most, had fallen to about 40 percent, while her open rate on routine scans stayed near 95 percent.

The fix that reached her wasn't a faster model. It was Palimpsest's fix, run again: an expected-range indicator built from study type and slice count, "Large study, usually 60 to 90 seconds," plus a note past that range, "Still working, unusually large study," so a long wait and a dead one stopped looking identical. Her open rate on urgent multi-phase reads climbed back to 91 percent within six weeks, because the tool was finally telling her something true while it worked.

Same rank as before, different family: a silent wait doesn't just get worked around, it can train someone to quietly stop trusting the tool at all for exactly the cases where the second read was worth the most.

Swap the trigger and it still runs.
Speed: an interviewer caps you at ninety seconds. Skip straight to the fix: real progress plus a cancel button, no bare spinner past ten or fifteen seconds.
Cost: there's no engineering budget this quarter for full per-chunk streaming. Ship a rough time estimate alone first, "usually 3 to 5 minutes for a document this size," pulled from historical job data. Most of the trust-repair for a fraction of the build.
The model got better, for real: say inference gets twice as fast, so the worst case drops from six minutes to three. Still bound the spinner. Three minutes of nothing on screen still reads as broken to plenty of people. The threshold moves. The mechanism, no visible signal reads as no progress, doesn't disappear just because the model improved.

Where people run it wrong.
They measure total job time against a budget and call the product healthy, without ever separately measuring the duplicate-submission rate or the abandon rate on the waiting screen itself.
They "fix" the silence with a generic loading animation or a rotating tip, instead of a signal tied to real, actual progress, which buys a few extra seconds of patience and nothing more.
They bound every spinner in the product, including the ones that already finish in five seconds, and spend engineering effort where trust was never actually at risk.

How to use it live. Say the split out loud before answering: "is the wait actually too long, or does it just look identical to broken." Naming that split buys you a beat, and signals you won't reach for "make it faster" as the only lever in the room.

Flashcards (tap any card to flip it)

1 · THE FLIP FAMILY
What flip family is this?
Tap to flip
ANSWER
Workaround flip: instead of leaving, Zara builds a private process around the tool, resubmitting the same file into a new tab whenever the spinner outlasts her patience, without ever telling the team she's doing it.
2 · THE PERSON
Who is this answer about?
Tap to flip
ANSWER
Zara Kildare, the product manager who owns Palimpsest's reliability at Greywolde Research, a former research analyst known for finding the one clause that mattered in a hundred page filing in under three minutes.
3 · THE HABIT
What did she stop doing because it worked?
Tap to flip
ANSWER
Reading the raw document before a meeting. When a summary took twelve seconds, she'd upload it and keep working, never watching the spinner at all.
4 · THE FLIP, IN THIS STORY
What's the two-setting switch here?
Tap to flip
ANSWER
Keeps waiting, trusting the job is still working, or opens a second tab and uploads the same file again, assuming it broke. No setting in between once the spinner ran past where a job would normally already finish.
5 · THE OLD DECISION
What decision would you take back?
Tap to flip
ANSWER
One plain spinner shown from "submitted" to "complete," with no progress state in between, because almost every beta document was one chunk and finished in under twenty seconds. Fine then. Not fine once diligence packs arrived.
6 · THE NUMBER
Fill in the blank: before the fix, ___ percent of large-document jobs got uploaded twice. After the fix, that fell to about ___ percent.
Tap to flip
ANSWER
34 percent. Down to about 2 percent, once bounded progress and content-hash dedupe shipped.
7 · THE REPLAY
Same bad morning, new design, what changes?
Tap to flip
ANSWER
The screen shows real progress, "section 4 of 14, about 2 minutes left." She never opens a second tab. Weekly wasted spend on duplicate jobs falls from about $2,400 to about $140 within three weeks.
8 · CROSS-PRODUCT TRANSFER
Section 4 answers this same question again for a different product. Which product, and which flip family?
Tap to flip
ANSWER
Corvei, the pre-read assistant at Wrenholt Radiology Partners. Abandonment flip: Dr. Frankie Herron quietly stops opening the tool at all for large, urgent reads, without ever filing a complaint.

Check yourself Score: 0 / 0

True or false
1. True or false: because Palimpsest's total job completion time stayed under the ten-minute budget the whole time, the dashboard correctly showed the product was healthy.
  • True
  • False
Show hint
Ask which number the ten-minute budget was actually tracking, and which number it never measured at all.
Show answer
False. The budget tracked total completion time, not the duplicate-job rate or the silence during processing, so it never caught the exact thing costing Palimpsest wasted spend and confused analysts.
Fill in the blank
2. In the beta, a typical Palimpsest summary took about ___ seconds. Once diligence packs arrived, a typical large-document summary took about ___ to ___ minutes.
Show hint
Look near the start of the "Let's learn" section.
Show answer
About 12 to 18 seconds. Once diligence packs arrived, about 3 to 6 minutes. The jump wasn't a slower model, it was documents that needed far more chunks summarized in sequence.
Multiple choice
3. Why did a ninety-second bare spinner cause Zara to open a second tab, when the same ninety seconds inside a bounded progress bar wouldn't have?
  • A. The bounded version actually finished faster because it skipped chunks.
  • B. The bare spinner gave no sign the job was still moving, so ninety seconds of silence looked exactly like a dead job, while bounded progress showed real work completing.
  • C. The model made fewer mistakes once progress was streamed to the client.
  • D. Bounded progress automatically retried the job in the background.
Show hint
Think about what changes on screen at second ninety in each version, not what changes on the server.
Show answer
B. A silent wait and a dead job look identical from the outside. Bounded progress replaces that silence with a real, checkable signal.
Short answer, name the rejected alternative
4. What cheaper fix did the Palimpsest team consider before real per-chunk progress, and why was it rejected?
Show hint
Look at the paragraph right after the "choice that mattered" key point box.
Show answer
Model answer: A hard ninety-second timeout that showed an error and a retry button. It was rejected because it would kill jobs that were genuinely still working during a busy queue, and it would hand the exact same duplicate-job problem to a retry button the product itself was now telling people to press.
Short answer, apply it yourself
5. Think of an app that has ever made you wait with just a spinner and nothing else. Did you ever refresh, retry, or give up? What would a bounded version of that wait have shown you instead?
Show hint
Think about a file upload, a payment confirmation, or a search that just spins with no result count.
Show answer
Model answer: A bank transfer screen that just spins for thirty seconds with no detail often gets a second tap on "confirm," because there's no way to tell if the first tap registered. Showing "processing your transfer, this can take up to a minute" plus a spinner that's clearly still alive would likely stop the second tap, and the duplicate-transfer support ticket that can follow it.
Multiple choice
6. At Wrenholt, why did Dr. Frankie Herron's open rate on Corvei fall specifically for large, urgent scans, and not for routine ones?
  • A. Corvei's accuracy on large studies was measurably worse, so she stopped trusting it.
  • B. Only large studies ran long enough to hit the silent, unbounded spinner. Routine scans finished fast enough that the missing signal never mattered.
  • C. Wrenholt's policy banned AI pre-reads on urgent cases.
  • D. She was told to save Corvei's compute budget for routine cases only.
Show hint
The problem wasn't accuracy. It was which cases were long enough to expose the missing signal.
Show answer
B. Routine scans finished in five or six seconds, too short for silence to matter. Large studies ran long enough that the same bare spinner started looking identical to a dead one.
Before you close the answer
Why this works
Tests whether you know a wait's total length and its perceived reliability are two separate problems, and that an unbounded spinner fails on the second one even when it's well within budget on the first.
Follow-up traps
"Couldn't you just make the job finish faster instead of building progress UI?" Response: speed helps, but it doesn't remove the flip, it only moves the threshold. Even a faster job that still takes long enough to notice needs a real signal, or the exact same silent-versus-dead confusion happens later, just less often.

"Isn't dedupe just solving a problem you could avoid by rate-limiting uploads?" Response: no, rate-limiting punishes the person for the product's own missing signal. Content-hash dedupe fixes the actual cause, that a second click looked indistinguishable from a genuinely new job, without stopping anyone from using the tool normally.
If pressed
Content-hash dedupe needs a short grace window, not a permanent lock, because a person might legitimately re-upload a corrected version of a file with the same name minutes later. Palimpsest keys the dedupe on the file's content hash plus a ten-minute window, so an identical re-upload inside that window reattaches to the running or cached job, and an identical re-upload after it starts a fresh one, on the assumption enough time has passed that it's probably a deliberate retry.
From U2xAI Academy

From answering questions to owning outcomes.

A live workshop where you ship a working AI agent, defend a launch decision, and walk away with a portfolio recruiters can't wave off, not just more questions to study.

  • A live AI agent you actually shipped
  • A launch decision you can defend under pressure
  • An interview-ready portfolio, not more flashcards
Know more