How-to guide · Clients & workflow

What to do when a project stalls on the client

When a project stalls on the client’s side, the short version is this: name the exact thing you are waiting for, say plainly what the wait does to the delivery date, and offer the client two doors — send it by a date, or pause the project formally — then get the choice in writing. A stalled project is not free storage. It holds a slot in your calendar, a deposit’s worth of obligation, and a delivery date that quietly becomes yours to miss when the work finally restarts in a panic. And the client is rarely gone: they reply, they apologise, Friday is promised. That is what separates a stall from ghosting, where the replies themselves have stopped. A stall needs no chase. It needs the blockage made visible, priced and dated — early, kindly, and in writing.

1. Name the stall precisely

“Waiting on the client” is a fog phrase, and fog is how a stall gets absorbed into your week. Underneath it sit four different blockages, and each has a different lever — treat them as one and you will pull the wrong one, politely, for a month.

The content stall. Words, images, product details — the material only the client has. The lever is a list: exactly which items, in which format, asked for on one date. A drip of small requests across three weeks trains the client to treat each one as casual; a single dated list reads as a milestone, because it is one.

The approval stall. The work is done and sitting in their inbox; the decision is the missing input. The lever is a name and a consequence: who approves, and what happens to the delivery date if the approval lands after the date it was due. Approvals rarely feel urgent to the approver until the cost of waiting has a date attached.

The access stall. Logins, credentials, their developer who is “about to” send the keys. The lever is an alternative route: a screen-share session, temporary access granted properly, an export you can work from — anything that turns a person you cannot chase into a step you can schedule.

The decision stall. The client themselves has not decided — budget, direction, an internal argument you will never see. No asset list fixes an undecided client, and honesty about that is the lever: this is the stall that most often deserves the formal pause in section 3, because the missing input is not a file but a decision.

One distinction matters before you act. A slow client still moves: inputs arrive late, but they arrive, and each week the project is measurably closer to done. A stall repeats: the same promise, the same missing item, the same Friday. The test is not speed but direction — if the project sits exactly where it sat two check-ins ago, you do not have a slow client, you have a stall, and it deserves the named-line treatment below rather than another patient week.

Whichever yours is, reduce it to one line: the named thing, the named owner, the date it was asked for. Then write that line where the project lives — the shared folder, the project thread, the running note kept the way how to take client call notes describes, where decisions and actions on both sides are recorded the day they happen. A blocker that exists only in your head exists only for you: the client experiences a vague sense that the project is “with the freelancer”, while your calendar quietly burns. If it isn’t written down, it didn’t happen — kindly, but truly.

2. The first conversation: two doors

Raise it as soon as the date moves — not when frustration arrives, which is later and sounds worse. The conversation has one job: to move the stall out of your calendar and into the open, with its consequence attached. It is kind, it is specific, and it offers exactly two doors. Door one: the missing input arrives by a stated date, and the delivery date moves day for day — their delay becomes a new date, agreed now, rather than an apology extracted later. Door two: the project pauses formally, on the terms in the next section, and restarts as a fresh booking when they are ready. Understand the pause correctly and you will offer it without dread: it is a gift, not a threat. It releases the client from the low-grade guilt that makes people avoid a freelancer’s emails, and it releases your slot at the same time.

Hi [Name] — quick note on [the project]. I’m waiting on [the final copy for the services pages], requested on [date], and the build can’t move past this stage without it. The delivery date moves day for day while it waits: if it reaches me by [date], we land on [new date]. If the timing is wrong on your side, door two is a formal pause — we stop here, invoice what’s done, and restart as a fresh booking when you’re ready. Either works; I need one in writing.

The message runs to 89 words. Note its temperature: you are reporting weather, not making an accusation. There is no complaint in it, no history of earlier delays, no fee talk — just the named blocker, the dated consequence and the two doors. Most stalled clients already know they are the blockage and are a little embarrassed about it; the freelancer who makes restarting easy is the one who gets restarted. Send it once, in the project thread, and then let the stated dates do the work. A follow-up before the date you named teaches the client that your dates are soft — and soft dates are how the next stall starts.

And if door one is chosen and the new date is missed too, do not renegotiate from scratch. The second miss is itself the answer: the pause in the next section now applies by default, because the client has shown — kindly, and probably without meaning to — that the input is not coming on any date they can currently promise. Say so in those terms. The pause is not a penalty for the miss; it is simply the shape that fits the facts.

3. The formal pause, in writing

If door two is chosen — or the stated date passes with neither door taken — the pause becomes a short written note, not a drift. Four points are enough. Work stops as of a stated date. The slot is released: your calendar is not a warehouse, and the booked-out and waitlist discipline that governs every other client governs this one too — a paused project holds no chair, and a waiting client outranks a sleeping one.

The money is settled to the pause line: work delivered so far is invoiced, or the deposit is applied against it, exactly as your freelance deposits and upfront payments terms describe, with the arithmetic shown rather than asserted. And the restart is defined while everyone is still friendly: within a stated window it resumes on the agreed terms; beyond that window it is booked again at your then-current rate. That single sentence is what prevents the message, eight months later, that begins “but we agreed…” — freelance contract basics is where clauses like it live, settled at signing rather than argued at restart.

One honesty rule governs fees here. Some freelancers charge a pause or restart fee when a stall passes a threshold, and if your agreement carries one, it applies — that is what agreements are for. What you cannot do is invent the fee mid-project, out of frustration, and present it as a term. Charges live in the agreement, never in the emotion of the month — the same doctrine this site applies to late fees, and for the same reason: a fee the client never agreed to is not a term, it is a surprise, and surprises end relationships that a pause would have preserved.

4. While it sleeps

A paused project should cost you almost nothing to keep. The slot it released goes back on the market if your pipeline can fill it — run the honest numbers in the pipeline income forecaster rather than assuming the restart will cover the gap, and treat the episode the way how to prepare for a slow season treats any quiet patch: as a selling problem with a date on it, not as an unexpected rest. If the slot sells, the restart joins the queue like any new booking — which is exactly what the pause note promised.

The file itself stays warm with very little: the archived work, the pause note, and at most one line a month — a genuine piece of news, a relevant introduction, never a nudge dressed as either. A stalled project does not need content marketing from you. More contact than that re-opens the guilt you deliberately released, and guilt is the mechanism that turns a paused client into a ghost.

Keep the work itself restartable while it sleeps. Save the files in their paused state, note where you stopped and what the next step would have been, and archive them alongside the pause note. A restart six months later should cost you an hour of re-reading your own record, not a week of archaeology through a folder you no longer remember.

Finally, check the clock on the deposit. Terms differ — some hold a deposit against a restart for a stated period; some treat a long-abandoned project as complete to the pause line, the deposit settled against work done — and this guide cannot tell you which yours says. Your freelance payment terms can. Read them now, while the answer is an admin task, rather than during the awkward conversation later. And if your terms are silent on abandoned projects, that silence is the first thing to fix in your next agreement.

5. Prevention: the next kickoff

Every measure above is cheaper at the start. The stall you prevent at kickoff costs one paragraph: the dependency list in the proposal. Our freelance proposal template, section by section already reserves a place for what the client provides — use it in full: every input the project needs from them, named, with the date it is needed by, written down before anyone signs. A client who can see their own obligations on one page mostly meets them. A client who cannot was, in fairness, never told.

Two habits complete the prevention. Ask for everything in one list at the start, not in drips across the build — drips train the client that your requests are casual, and the fifth small request gets a fifth-priority answer. And write the day-for-day rule into the delivery-date clause itself, so the conversation in section 2 becomes a reminder of a term both parties already signed, not a negotiation you are opening mid-project. Prevention does not eliminate stalls — clients’ lives are genuinely chaotic — but it changes their shape: named, dated and priced from day one, instead of discovered in week six with the deadline already gone.

Questions

Raise it the day the date moves. The trigger is not a feeling or a number of quiet days; it is arithmetic: the moment a missing input pushes the delivery date by its first day, the conversation is due. Raised then, it is a small, friendly note about a date. Raised three weeks later, it reads as an accusation about a pattern — and by then you have absorbed three weeks of a stall that was never yours to carry. If the input is late but the date genuinely does not move — you had slack, and used it — say that too: telling a client their delay cost nothing this time builds the credit that makes the day-for-day conversation easy when it matters.
Only if your agreement carries one. A pause fee, restart fee or reschedule charge is a term like any other: agreed at signing, it applies without apology; invented mid-project, it is a surprise, and surprises end relationships. If yours is silent, run this stall without the fee and fix the template instead — a stated window for restarts at the agreed rate, a restart beyond it at the current rate, and, if your work attracts long stalls, a modest restart fee named in the agreement from the start. Freelance contract basics walks through where clauses like these sit, and why they are agreed before anyone needs them.
Sometimes — with the limits stated out loud. Building the frame while the content is missing is often the right call: the structure, the layout, everything that does not depend on the missing input. What does not move is the shape of the obligation. The content-shaped hole stays theirs, named in writing; the delivery date still counts from when the input lands, not from when you started the frame; and the invoice clock does not pause for a hole — work done is invoiced on the normal terms. Agree those three things in the thread before you build around a gap, or the gap quietly becomes your problem wearing their deadline.
Then it gets the quiet ending, in writing: a final invoice for the work completed to the pause line, the deposit applied as your terms describe, the paid-for work delivered as you would in any project handover document, and a closing note that leaves the door genuinely open. Most stalled projects that die were killed by the client’s circumstances, not by you — and the freelancer who closed the file kindly is the one they call for the next project. The ending only becomes firing a client if the relationship itself has broken down; a stall, handled this way, never has to.

Related: the stall, the slot and the restart

If the replies themselves have stopped, that is a different problem with its own ladder — what to do when a client ghosts you. The handover document is the format that closes any project cleanly, stalled or finished. And the dependency list that prevents the next stall lives in the proposal template, agreed before the work begins. The smallest version of that prevention runs weekly: the waiting-on line of a client status update names the missing input in week one, while it is still a line in an email rather than a stalled project.