# 6.3. Troubleshooting

Sometimes a Fuego job will fail. This can be for a number of reasons, including invalid syntax in the input file, an ill-posed or non-physical problem setup, insufficient mesh resolution, computing hardware issues, or other reasons. When this happens, you will need to look for clues in the log file, the stdout stream (or slurm file), and any results output files (Exodus or Heartbeat). The following sections address some of the common failure modes you might encounter.

## 6.3.1. Invalid Input Syntax

If you use something in the input file that is not valid syntax, you will get an error in the log file. If the problem is invalid syntax, the error will be at the point in the input file where the invalid syntax was, and will suggest alternative syntax. For example, if we use an invalid unit system (using `SI` instead of `MKS` or `CGS` for the unit system specification)

    Begin Fuego Region Fuego_region

        # SET THE UNITS
        Set unit system to SI

The first signal we get that something is wrong is in the stdout stream (or the slurm file if launched on an HPC), but it does not tell us what the specific error is.

    $ aria -i demo.i
    exception on all processors:
    Execution terminated due to errors

    *** SIERRA ABORT on P0 ***
    *** check  file for more information ***

Looking in the log file, at the end of the file we would see

    There was 1 error encountered during parse
    There were no warnings encountered during parse
    Execution terminated due to errors

    SIERRA execution failed during parse with the following exception:
    Execution terminated due to errors

This does not tell us what the error is by itself either, but since it says it was a parse error we should search for the keyword “error” in the section of the log file where it repeats the input file. Then we find

            Begin Fuego Region Fuego_region

                # SET THE UNITS
                Set unit system to SI
    flow_over_cylinder_complete.i:51: Error: No matching command line found for 'Set unit system to SI'
    flow_over_cylinder_complete.i:51: The following command lines with matching keywords are defined:
    flow_over_cylinder_complete.i:51:   Set Unit System To {Cgs|Mks}
    flow_over_cylinder_complete.i:51:

The error message tells us which line was invalid, and shows the syntax for the best match. In this case, the model we used (`SI`) is invalid, and it shows us that the available options are `CGS` and `MKS`

## 6.3.2. Deprecated Syntax

Most Fuego problems use stable syntax that does not change from one release to the next, however sometimes features need to be removed for maintainability and sustainability of the codebase. This is done using a deprecation cycle to allow for time to migrate input file syntax.

Fuego uses a 6 to 12 month deprecation cycle (or longer for larger feature deprecations). When a deprecation is introduced, it will result in a warning immediately, which shows up both in the log file and in the stderr/slurm stream. For example, if you used a deprecated post-processor in Fuego version 5.10 you would see the following warning in the stderr/slurm output

    WARNING: Deprecated feature removed in Version 5.11 detected.

The same warning would also show up in the log file

    demo.i:82: Warning: Deprecated feature removed in Version 5.11 detected.

Deprecation version numbers are always odd-numbered (non-release). When the 5.10 version is released, the version of `sierra/daily` is set to 5.11. In this example, this means that using the deprecated post-processor will be an error if you run `sierra/daily` during the 5.11 release cycle, and in the next release (5.12) it will be an error. Pay attention to these warnings and update your inputs in a timely manner to avoid getting errors at future releases.