# Frequently Asked Questions

## How do I know if my model was delegated correctly?

When the delegate is applied, the TFLite framework will log a message in the
form of *TfLiteQnnDelegate delegate: X nodes delegated out of Y nodes with Npartitions*. This message will either be printed to stdout or will show up in
ADB Logcat.

## Which operators are supported by the Qualcomm® AI Engine Direct Delegate?

See the list of support:Supported Operators.

## What to do if I am getting “ERROR: Cannot Open QNN library”?

This error occurs when the Qualcomm® AI Engine Direct backend library cannot be found during the
dynamic loading process. There are two ways to solve this problem. The first
solution is simply to prepend the directory where the Qualcomm® AI Engine Direct backend library
resides on device, to the $LD\_LIBRARY\_PATH environment variable before
execution. See [On Device Environment Setup](https://docs.qualcomm.com/doc/80-63442-50/topic/tutorial_c_application.html#on-device-environment-setup) for examples. The second
solution is to use the `TfLiteQnnDelegateOptions.library_path`
delegate option to pass in the path of the Qualcomm® AI Engine Direct backend library.

## What to do if I am getting Qualcomm® AI Engine Direct HTP backend graph finalize error?

When using the Qualcomm® AI Engine Direct HTP backend, the following error may occur:

DspTransport.openSession qnn_open failed, 0x80000406
    IDspTransport: Unknown rpc status 0x80000406
    DspTransport.call failed,cannot open session, error 0xffffffff
    ERROR: qnn_graph_finalize failed. Error 1
    Copy to clipboard

This error occurs when the Qualcomm® AI Engine Direct HTP Stub library cannot find the respective Skel
library. Make sure this library has been pushed on device first. To resolve this
issue, there are two solutions. The first solution is to prepend the path of the
directory where the Skel library resides to the $ADSP\_LIBRARY\_PATH environment
variable. See [On Device Environment Setup](https://docs.qualcomm.com/doc/80-63442-50/topic/tutorial_c_application.html#on-device-environment-setup) for examples.
Alternatively, the `TfLiteQnnDelegateOptions.skel_library_dir`
delegate option can be used, which will automatically setup the
$ADSP\_LIBRARY\_PATH variable. The value should be the absolute path to the
directory of the Skel, without the filename.

Further, though we work hard to ensure robustness, it is still possible that
some other errors happen while the graph is being finalized. In this case, we
provide a skip option in the Delegate C-API. A user might examine which node
causes failures and might be able to skip its delegation to Qualcomm® AI Engine Direct Delegate.

## What to do if I am getting errors about Qualcomm® AI Engine Direct backend library version mismatch?

Qualcomm® AI Engine Direct Delegate will only support the same version of
Qualcomm® AI Engine Direct backends.

## How do I get more information on errors and warning?

The `log_level` option will change the verbosity of both the Qualcomm® AI Engine Direct Delegate as
well as the Qualcomm® AI Engine Direct backends. Certain backends will print verbose messages which
can be helpful during debugging.

## How can I tell which operator was not delegated?

If the `log_level` option is set to `INFO` or higher, the delegate will log
a *[Qnn Delegate] op type X not supported* message. Here *X* is a number that
corresponds to the TFLite
[builtin operator code](https://github.com/tensorflow/tensorflow/blob/v2.4.1/tensorflow/lite/schema/schema.fbs#L220).

Last Published: Oct 10, 2025

[Previous Topic
Registering and Running Op Packages](https://docs.qualcomm.com/bundle/publicresource/80-63442-50/topics/custom_op.md) [Next Topic
API](https://docs.qualcomm.com/bundle/publicresource/80-63442-50/topics/TfLite-Delegate_api.md)