Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
  1. Home
  2. Blog
  3. The Agency Says the Project Is Finished, but It Keeps Breaking. How Do I Fix It Without Starting Again?
Problems We Solve

The Agency Says the Project Is Finished, but It Keeps Breaking. How Do I Fix It Without Starting Again?

Previous agency delivered broken code and every fix breaks something else? SpiderHunts audits it, stabilises it and decides with you what to keep or replace.

Updated 3 min readBy SpiderHunts Technologies

Free estimateNo obligation

Get a free estimate

Tell us what you need. A senior engineer reads every enquiry.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →

Quick answer — TL;DR

When a previous agency delivered broken code, the fix starts with an independent audit, not a rewrite. SpiderHunts gets the system running in a controlled environment, adds monitoring and tests around the parts that fail, fixes the causes in order of risk, and only recommends replacing parts that cannot be made reliable.

Signed off, paid for, and still falling over

The agency ran a final demo, you signed the acceptance form and they sent the last invoice. Within weeks the problems started. Orders go missing now and then. A report shows different numbers from the database. The mobile app crashes for some users and not others. Every support ticket gets a fix, and each fix seems to break something else.

Now the agency is slow to respond, or wants a new contract to keep fixing things they built. Your team has stopped trusting the system and is keeping its own spreadsheet on the side, just in case.

Why broken delivery is rarely just bad coding

Poor code is usually a symptom. The causes tend to sit further back.

  • The project was sold at a fixed price and the scope grew, so the last stretch was rushed to protect the margin.
  • Testing meant clicking through the happy path in a demo, not checking what happens with bad data, slow networks or two people editing the same record.
  • Junior developers did most of the work without anyone senior reviewing it.
  • There was no staging environment, so changes were tried on the live system.
  • Requirements lived in emails and calls, so nobody could say what correct behaviour was.

Knowing which of these applies matters, because it changes what the fix is. Untested edge cases need tests. A broken data model needs a redesign of one part. Missing requirements need a conversation, not code.

What it is costing you now

The direct cost is time: staff checking outputs by hand, support tickets, lost orders, customer apologies. The indirect cost is harder to see. People stop using the system for anything important, and the investment turns into another tool that runs alongside the spreadsheet rather than replacing it.

There is also a decision cost. Without an independent view you cannot tell whether you are one sprint of fixes away from a stable system or pouring money into a foundation that will never hold.

How we stabilise inherited code

  1. Get everything under your control: repository, hosting, database, domain and third-party accounts, all in your name, with old credentials rotated.
  2. Build it and run it outside production. A copy on a staging server with anonymised data lets us reproduce faults without risking live customers.
  3. Audit the code and architecture. We look at structure, data model, error handling, security basics, dependencies and how it is deployed. You get a written report that says what is sound, what is fragile and what is dangerous, in plain language.
  4. Add visibility. Error tracking (for example Sentry) and structured logs go in early, so faults show up with a stack trace instead of arriving as vague complaints.
  5. Write tests around what breaks. Before touching a failing area, we write tests that capture how it should behave. Fixes then stop reintroducing old bugs.
  6. Fix by risk, not by noise. Data loss and security problems come first, then faults that stop work, then annoyances.
  7. Replace only what cannot be made reliable, one piece at a time, with the rest of the system kept running.
Audit findingTypical response
Missing validation and error handlingAdd them, with tests
Outdated or vulnerable dependenciesPlanned upgrade with regression testing
Business logic copied in several placesConsolidate into one tested module
Data model that cannot represent real casesRedesign that part with a migration plan
No deployment processScripted deployments with staging first

After the dust settles

Your team gets a system that behaves the same way twice. Errors are caught and logged before a customer phones. Changes go through staging and tests before they reach users, so a fix to invoicing no longer breaks the dashboard.

You also get something you probably did not have from the original agency: documentation of how the thing works, how to deploy it and where its weak points still are. Whoever maintains it next, us or someone else, starts from that.

Is this what you are dealing with?

  • The project was signed off but faults keep appearing in normal use.
  • Fixing one bug regularly creates another.
  • Staff keep a parallel spreadsheet because they do not trust the system.
  • The original agency is unresponsive or wants a new contract to fix its own work.
  • You need an independent opinion before deciding whether to rebuild.

FAQ

Frequently asked questions

The questions readers ask us after this guide.

Still have a question?

Ask us directly — a senior engineer will get back to you.

Ask about your project

Will you just tell us to rebuild everything?

No. A full rewrite is expensive and carries its own risk. We recommend replacing only the parts that cannot be made reliable, and we explain why for each one.

What drives the cost of stabilising a system?

The size of the codebase, how many areas are failing, whether there is any test coverage or documentation, and how much of the data needs repairing. The audit is what lets us estimate the rest honestly.

Can you work while the system stays live?

Yes. We reproduce and fix problems on a staging copy and release changes in small, tested steps, so the live system keeps running.

Do we need to involve the old agency?

Only to get access and any documentation they hold. It helps if they hand over cleanly, but the work does not depend on their cooperation.

What if some of the data is already wrong?

We find the affected records, work out how they went wrong and correct them with scripts you can review, keeping a record of every change.

Keep reading

More on Problems We Solve

Start here

Stuck with code that keeps breaking?

Tell us what was built, what breaks and what you have been told about it. We will assess it and give you a straight view, including when a targeted fix is enough and a rebuild is not needed.

  1. You tell us what you needTwo minutes on the form, or a message on WhatsApp.
  2. A senior engineer reviews itAnd comes back with questions, a realistic range and an honest view on fit.
  3. Free 30-minute scoping callWe talk through scope, options and a realistic estimate — with no obligation.
Free estimateNo obligation

Talk to someone who builds this

Send a short brief and we will come back with an honest view and a realistic range.

Takes under a minute. We never share your details.

  • Free consultation
  • No commitment
  • NDA on request

Prefer to talk? Book a free 30-minute call →