Audiokinetic Wwise Knowledge Base

Common errors reported in the Capture Log

This list contains the most frequent errors seen in the Capture Log when profiling a game with Wwise.  If your error is not in the list, please contact Audiokinetic support.

When contacting support, it is always a good idea to have reproduction steps at hand.  Also, if possible, record the profiling session by enabling "Save profiling session on disk" in the Profiler Settings (Alt-G). This will create a file named LastProfilingSession.prof in your project directory. Send it along with your project files, zipped with WwiseProjectZipper.exe, found in the Wwise executable directory (usually C:\Program Files\Audiokinetic\Wwise [version]\Authoring\Release\bin).

Most errors reported in the Capture Log have a relationship with previous notifications. To find them, select the error line and follow the "blue dots". It might give you more context about the error.

Bank Load Failed
Event ID not found
Failed creating source
File not found in reference language
Incompatible bank version
Insufficient memory in pool
Invalid file header
Media was not loaded for this source
Nothing to play
Play Failed
Plugin not registered
Seek table required to seek in Vorbis sources

Seek table needed for Vorbis audio format with this virtual voice behavior

Selected Child Not Available

Selected Node Not Available

Source starvation

Voice starvation
XMA starvation

Bank Load Failed

Generic error telling the load of a bank failed.  None of its content is ready to play.

Probable causes:

-The bank file is not found
-The bank was generated with a different version of Wwise
-The bank is corrupted
-There was an I/O error

Recommended resolution steps:

-If you use the default I/O code provided with Wwise, check the call to SetBasePath and verify it points to the proper directory.
-Make sure the bank was properly generated, with the right version of Wwise.
-Debug the low-level I/O code.

Event ID not found

PostEvent was called but the sound engine could not find the specified event.  The event used will be reported on the same line.

Probable causes:

-A bank was not loaded or didn't load properly
-Banks are out of date
-Typo in the event name
-Typo in the event ID

Recommended resolution steps:

-Make sure the name or ID is correctly written in the game code
-Ensure the event is in a bank and that the bank is loaded
-Make sure the banks are up to date.

Failed creating source

Generic error telling that an audio source could not be started.

Probable cause:

-Not enough memory to create the source (would be preceded by an out of memory error)
-The bus for this source doesn't exist.  Maybe the Init bank is out of date.
-An unforeseen error

Recommended resolution steps

-Check for out of memory errors in the log and resolve it
-Ensure the Init bank is in sync with the bank containing this source.  Regenerate and re-copy the banks.
-Contact Audiokinetic support.  Ideally, generate a LastProfilingSession.prof (see steps at the beginning)

File not found in reference language

The localization system of Wwise needs a one to one match between language files. When importing localized file, the file importer will verify if the same filename can be found in the reference language folder (the same filepath must also be used if any subfolders were created below the language folder). This error is displayed if the file cannot be found. Example: Importing the file voice123.wav as a French file, if that file cannot be found in the reference language folder first (\Originals\Voices\English(US) for example), this error will be displayed.

Before importing any other languages, the reference language must contain all .wav files of the same name. 

Incompatible bank version

- The bank loaded was generated with a different Wwise version. Make sure your new banks are also copied in the right location for the game to read it.
- The bank loaded was generated for a different platform than the current one.  For example, if you are running on XBox, make sure the bank was not generated for Windows.
- The memory containing the bank has been corrupted (when a memory pointer (in_pInMemoryBankPtr) is used with LoadBank).

Insufficient memory in pool

A memory allocation failed because there wasn't enough room in the specified pool.  Note that the Memory Tab in Wwise profiler shows a snapshot taken each 200ms of the current state of the memory.  Therefore, it is possible that it shows there's enough room even though an error is reported at the corresponding time.  

Probable causes:

-Enlarge the pool
-Reduce memory usage for that pool (see Tips to reduce memory usage)
-Specify a pool for the PrepareEvent API (see AKInitSettings::uPrepareEventPoolId)

Invalid file header

A streamed file could not be decoded because the header of the file was corrupted or it is an unsupported file type.  The sound that triggered this error is reported with the error.

Probable causes:

-File corruption
-Wrong version of Wwise was used to convert the file

Recommended resolution steps

-Reconvert and recopy the file
-Use the Wwise version corresponding to the Sound Engine used in the game
-Send the original and converted files to Audiokinetic support for analysis

Media was not loaded for this source

A sound was scheduled to play but the associated media was not found in memory.  The sound that generated this error should be reported on the same line.

Probable causes:

-A bank was not loaded or didn't load properly
-A PrepareEvent is missing or failed
-Banks are out of date

Recommended resolution steps:

-Check the Capture Log for failed sound bank load
-Ensure the sound is in a bank and that the bank is loaded
-Make sure the banks are up to date.

Nothing to play

A dynamic event could not resolve the given arguments to a valid sound.  The faulty argument combination is reported in the line above, in the Capture Log.

Probable causes:

-This is always due to a bad set of arguments or a set of argument leading to an unassigned path.

Resolution steps:

-Correct the code to pass the proper arguments
-Change the Dialogue Event paths and arguments so they lead to a valid sound.

Play Failed

Generic error saying that an event could not complete.  The real reason for the failure is usually right above the error in the Capture Log.

Resolution steps:

-Check the Capture Log for the line above the error
-Select the error in the Capture Log and follow the related dots (in blue) to find all related notifications.  One of them should give a clue of what failed.

Plugin not registered

This error means that the game loaded a bank with an unknown effect or source plugin.  Check with the list of plugin IDs here: Wwise Plug-in IDs

Probable causes:

-A call to AK::SoundEngine::RegisterPlugin with the plugin information is missing
-A call to AK::SoundEngine::RegisterPlugin failed
-The bank is out of date
-The bank is corrupted

Recommended resolution steps

-Add the missing call to AK::SoundEngine::RegisterPlugin
-Check the return code of AK::SoundEngine::RegisterPlugin
-Regenerate and recopy the banks (including the Init.bnk)

Seek table required to seek in Vorbis sources, Seek table needed for Vorbis audio format with this virtual voice behavior

The sound engine could not seek into a source encoded in Vorbis.  The Vorbis codec is a variable bit rate codec therefore to seek to a specific position, you need a seek table.

Probable causes:

-An event with the Seek action was posted for a Vorbis encoded sound.
-A call to AK::SoundEngine::SeekOnEvent on a Vorbis encoded sound.
-The virtual voice behavior of the sound (in Advanced Settings) is set to Play From Elapsed Time

Recommended resolution steps

-Add a seek table in the Conversion Settings of the sound
-Change the codec type in the Conversion Settings of the sound
-Change the virtual voice behavior in the Advanced Settings of the sound to something else than Play From Elapsed Time
-Avoid seeking on this sound

Selected Child Not Available, Selected Node Not Available

A sound was selected to play but it is not loaded.  The ID of the sound is reported on the same line.

Probable causes:

-An event is referring to a sound that is not loaded
-A random container trying to start a child sound that is not loaded
-A switch container trying to start a child sound that is not loaded
-A music playlist trying to start a child sound that is not loaded
-A dynamic event is trying to start a child sound that is not loaded
-The selected sound ID is invalid because banks are out of date

Recommended resolution steps:

-Check the Capture Log and select the error.  Follow the related notifications (blue dots) to find the event that caused this error.
-Ensure the sound is in a bank and that the bank is loaded
-Make sure the banks are up to date.

Source starvation

This error occurs if the I/O for a streamed voice could not complete in time.  This would cause a glitch in this voice only.  

Probable causes:

-Connect the Wwise profiler and check the Streaming Tab.  Validate that there isn't an abnormal number of streamed voices.
-Increase the streaming and I/O buffers
-Debug the Low Level I/O game code

Voice starvation

This error indicates that the sound engine could not generate the next audio buffer in time to avoid buffer exhaustion.  The audio output probably glitched.  

Probable causes:

-The general CPU load is very high
-Other threads are pre-empting the audio thread
-The audio load is very high (too many voices to process).

Recommended resolution steps:

-Connect the Wwise profiler and evaluate the CPU %, the number of voices and the number and type of effects running.  
-Find ways to cull some voices with instance limiting
-Find ways to cull some voices and game objects from the game side (objects 10km from the listener don't need to exist at all)
-Send voices to virtual earlier
-Reduce the number or quality of effects
-Change the codec used for sources or the compression quality (Vorbis is more CPU intensive than the rest, in many quality settings)
-Connect a code profiler to your game and check if there are other threads with equal or higher priority that may be pre-empting the audio thread.

XMA starvation

This error indicates that the XMA hardware decoder does not have enough time to decode all buffers. This may cause glitching and crackling noises.

Probable cause:

- XMA converted sounds that have a pitch parameter higher than 0. 

Recommended resolution steps:

- If the pitch does not need to be controlled by an RTPC, render the pitch in the original audio file.
- Use a smaller sample rate in the conversion settings
- Use a different codec



Article Details

Last Updated
4th o January, 2012

Would you like to...

Print this page Print this page

Email this page Email this page

Post a comment Post a comment

Subscribe me

Add to favorites Add to favorites

Remove Highlighting Remove Highlighting

Edit this Article

Quick Edit

Export to PDF

User Opinions (1 vote)

100% thumbs up 0% thumbs down

How would you rate this answer?



Thank you for rating this answer.

Related Articles

No related articles were found.

Attachments

No attachments were found.

Continue