After crushing victories at Lake Trasimene and then again at Cannae during the 2nd Punic War, Hannibal had a direct path to either cut the head of the snake entirely by marching on Rome, or strengthen the entire war effort by forcing a recall of troops guarding the peripheral territories of Rome to preserve the capital. In both instances he incorrectly assumed total victory was not needed to get Rome to negotiate, deciding to preserve his forces instead.
The Carthage Senate, in control of a weathier empire after Cannae, had the resources to give Hannibal overwhelming force. When a senator probed Hannibal's brother regarding if Rome had sued for peace, or the Iberian tribes had reinforced Hannibal's army, he was forced to say no. The senate concluded that their strategic objectives to obtain more territory on the islands or Iberia, were not being furthered despite Hannibal's string of military victories in the Italian peninsula.
Was it a bigger mistake for Hannibal to not have marched on Rome? Or for Carthage to not have resupplied Hannibal into an overwhelming force? And why?
The question if Hannibal should have attacked Rome is a common one, I found this excellent answer https://www.reddit.com/r/AskHistorians/comments/85ta0f/why_didnt_hannibal_march_on_rome/ by /u/quo_usque. Hopefully someone else can come by to drop additional context and maybe some new information, or you can do some digging. I'm sure theres more answers on this topic out there.