Labour shadow chancellor John McDonnell
Labour shadow chancellor John McDonnell has been criticised for the party's U-turnGetty

A last-minute decision by the Labour party to vote against the government over its charter of fiscal responsibility has provoked anger among MPs and has thrown the party into disarray once again.

Shadow Chancellor John McDonnell had vowed the party would back government plans to run a budget surplus, despite Labour leader Jeremy Corbyn's central anti-austerity policy. The Conservative policy ties the government to running a budget surplus in times of economic stability.

McDonnell had hoped the pact would sure-up Labour's economic credibility. However, the original policy of backing the government had set the stage for a rebellion against Corbyn and baffled many. The SNP positioned itself as the only political block with anti-austerity credentials following the shadow chancellor's decision.

In a letter circulated by McDonnell to MPs ahead of the vote and obtained by the Guardian, he said: "As the nature and scale of the cuts Osborne is planning are emerging, there is a growing reaction not just in our communities but even within the Conservative party.

"The divisions over the cuts in tax credits to working families are just the first example of what we can expect as the cuts in other departments are exposed and the failure to find additional resources to bridge the growing expenditure gap in service areas like the NHS is revealed.

"So I believe that we need to underline our position as an anti-austerity party by voting against the charter on Wednesday. We will make clear our commitment to reducing the deficit in a fair and balanced way by publishing for the debate our own statement on budget responsibility."

The shadow cabinet has faced widespread criticism for its handling of the U-turn. The spectre of party discipline has been raised again over another central policy. Labour rebels have said they will defy party whips to vote with the government over British involvement in the war in Syria.