Sometimes you have to go with the flow. There is now a cabbage and this was the correct solution for the puzzle. Keep the session enjoyable for everyone, the "real solution" doesn't count all that much.
Story time!
A while back, I ran an investigation-based campaign over multiple sessions. Between long breaks in play and general chaos driven by the players, they somehow ended up accusing the one NPC who was actually trying to help them. We ended that session there.
In the downtime, I thought about what happened and had an idea... mostly as a joke - what if I reworked the story so that NPC was actually the real villain? I tried writing it, and it turned out the story could mostly work. A few small details didn't line up perfectly, but the players had forgotten them or wouldn't have made the wrong accusation in the first place. I decided to go with this revised version.
The next session became an epic finale where all the players felt really clever for deducing the plot twist. It was one of the best sessions of the whole campaign because they were playing at their best, feeling empowered.
I think forcing them into a session where they had to try and "fix" their mistake while in a bad mood over having been so confidently wrong wouldn't have been nearly as fun overall.
The point isn't there being a 'real' solution. The point is that there wasn't really a problem to begin with. This is more like when your party assumes a door is trapped and takes an hour to decide how to approach it, but the door was really just a rotted normal door ready to fall off its hinges.
I've heard stories about players finding clues that the DM never intended to leave. Either stuff that wasn't supposed to be important or plot holes. I think it might be good to have a rule that if the players find a certain amount of evidence, then regardless of the intended answer, they're right. Honestly, I think it might be fun to not have an intended solution, and just keep making up details until they find enough plot holes.