I've actually worked on a failed-ish (or at least put on pause) development for a government (no names!).
There's plenty of other explanations that don't include corruption.
Lack of scope, mismanagement, what's developed isn't what they wanted, the people who decided the specs aren't the people using it so it's useless, etc.
We actually ended up delivering the first phase of the project (well, the 2nd iteration as the first was completely fluffed up by other developers trying to make a really complicated SPA that wasn't needed), but declined to bid on the second as we actually lost money and it was by that stage obvious they wanted the moon on a stick for phase 2 for very little money.
One of the Big Four were looking over the architecture in the 2nd iteration to make sure it could "scale" appropriately. But they knew exactly the load the app would face. 120,000 applications every year in the space of two months. It would never increase significantly as it was a factor of the total population. And it was basically a glorified 10 page form (admittedly each page had some complicated question routes depending on answers).
The architecture, which included event-sourcing, API gateways, load balancing and an inexplicable use of the mediator pattern (didn't make the slightest bit of sense), was utterly pathetic. Yet signed off as "best practice" by two separate software architects in the big four.
Within weeks I was pointing out serious bottlenecks in the code plus violations of GDPR that the client had explicitly said to watch out for. Any time we had to add a new property to the most important classes we had to change about 30 odd files, it was "best practice" gone nuts.
All that crazy architecture when a simple, normal, sane, "monolith" web app could have handled that load easily on a small VM. For a lark I refactored the DB saving code to see how much simpler I could make it and think I got rid of 25 of the 30 files and thousands of lines of pointless code in a day or two. Of course, it wasn't signed off by the "architects" so I didn't bother trying to check it in.