A glob that matched a directory or a zero-byte file still reached curl, which failed the whole job with exit 26 and lost the upload even though every fab artifact had been produced. add() now requires a non-empty regular file and logs what it skipped.