Voicemail discarding messages

I’ve noticed that a system is discarding some voicemail messages without sending them to the user. I was asked by one of my clients why some messages were missing, he even called his own voicemail and left a message and never received it.

I checked through the logs and saw this:
[2017-02-17 07:17:32] VERBOSE[19669][C-00000183] app.c: – x=0, open writing: /var/spool/asterisk/voicemail/default/101/tmp/DxDh3u format: wav, 0x7fda1c2eb538
[2017-02-17 07:17:39] VERBOSE[19669][C-00000183] app.c: – User hung up
[2017-02-17 07:17:39] VERBOSE[19669][C-00000183] app_voicemail.c: – Recording was 0 seconds long but needs to be at least 1 - abandoning

The user was recording a message for 7 seconds, however app_voicemail.c seemed to think it was 0 seconds and discarded the message?

I initially thought it might have something to do with silence detection, but the setting for Silence Threshold is actually blank. Also, I actually have a recording of the call and I can hear the user leaving a message and then hanging up.

I have no idea why app_voicemail.c thinks the message was 0 seconds when the logs show that it started recording at 17:32 and the user hung up at 17:39.

Does anyone have any ideas?

It examines the file itself to determine the length of the recording. How was your recording of the call done? Inside of Asterisk itself?

Yes, using mixmonitor. These are the last two lines for the call:
[2017-02-17 07:17:39] VERBOSE[19671][C-00000183] app_mixmonitor.c: == MixMonitor close filestream (mixed)
[2017-02-17 07:17:39] VERBOSE[19671][C-00000183] app_mixmonitor.c: == End MixMonitor Recording SIP

What version of Asterisk?

It’s running Asterisk 11.23.1.

Does anyone have any ideas?