Oops, I jumped the gun on this. I got the same error on a fasta file with no spaces in the description (BSML::Indexer::Fasta truncates the description at the first space). I tracked it down to a bug in the parse_multi_fasta subroutine in bsml2fasta.pl. The script builds a $sequencelookup hash based on the scrub fasta_id, and then parse_multi_fasta tries to access it with the unscrubbed version. The fix was relatively simple:

- if(exists $e{$h{$sequencelookup->{$specified_header}->{'fasta_id'}}}){
+ if(exists $e{$h{$specified_header}}){