I don't think it's about repeating the instructions, but rather providing feedback as to why it's not working.
I've noticed the same thing when creating an agentic loop, if the model outputs a syntax error, just automatically feed it back to the LLM and give it a second chance. It dramatically increases the success rate.