It may not seem so but your question has a lot os possible explanations. First lets just talk about the bad breath by itself. At four months your puppy is replacing lots of teeth, there are some incisors in the front and premolars on the sides and maybe a molar in the back. If there are open sockets from recently shed teeth these can harbor bacteria which gives rise to odor. There can also be temporary teeth that are loose but not shed which can lead to the same. If you look closely you should be able to see if this is a part of the problem.
Next, food changes can lead to changes in breath odor, but if the breath is really offensive this is a less likely explanation.
Since you mentioned that his breath has a "urine" characteristic I would need to know if he "licks his privates" a lot.
In an effort to be complete I should also mention that "urine like" breath odor can accompany some types of kidney or lower urinary tract disease but if his attitude and appetite and weight gain have been good these problems would be unlikely.
As I said yours is really a complex question so please send any additional questions or observations through the ForumQ&A or INSTAVET mobile app.