has_excerpt yields true but no post_excerpt when retrieved

If $att is a numeric post ID, then try this:

$attachment = get_post( $att );
echo( $attachment->post_excerpt );

has_excerpt() takes a post ID, but the post ID isn’t an object. You have to get the attachment using get_post(), then get the excerpt from there.

tech