In the case of a IDL not containing a program Id, the rust client is still generated but it produces this compilation error:
DecodeError::TooShort => panic!("Base58 string too short"),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'Base58 string too short',
And this is being caused by: pub const DCA_ID: Pubkey = pubkey!("");. Maybe we could update the behaviour to raise an error and not generate the client if program ID is not set.
That would at least cover that case, which is probably the most common one, if the program is set but to an invalid string for a pubkey I don't think (I might be wrong) there is a good way to check that at the generation stage