Trying to sign something with an expired key fails with:
$ gpg --default-key 9F48DAD6475BC942 --armour --sign
gpg: Warning: not using '9F48DAD6475BC942' as default key: No secret key
This is quite misleading and leads to spend time trying to debug issues with the
private keys, while the real problem is in the public one.
Being more explicit on the reason why using the key failed would be ideal, but
if the program isn't able to know at least rewording the error message (maybe to
something like "Secret key not available or expired key") would prevent wasting
time looking in the wrong direction.