---
title: "Troubleshooting"
description: "Troubleshooting common Aerospike path expression errors with detailed causes and practical solutions."
---

# Troubleshooting

> For the complete documentation index see: [llms.txt](https://aerospike.com/docs/llms.txt)
> 
> All documentation pages available in markdown.

This page contains a list of commonly found [path expression](https://aerospike.com/docs/develop/expressions/path/) errors, with causes and solutions.

**Error: `OP_NOT_APPLICABLE` / `OpNotApplicable`**

-   **Cause:** The target bin is not a map or list (e.g., it’s a string or integer).
-   **Solution:** Verify the bin type before applying path expressions, or use a record-level filter expression to skip records without [CDT](https://aerospike.com/docs/develop/data-types/collections/) bins.

---

**Error: `PARAMETER_ERROR` / `InvalidRequest`**

-   **Cause:** The filter expression is malformed or references an invalid type.
-   **Solution:** Double-check your expression syntax. Ensure `LoopVarPart` matches the container type (`MAP_KEY` for maps, `LIST_INDEX` for lists).

---

**Error: Type mismatch during traversal**

-   **Cause:** The filter expects a different type than the actual data (e.g., filtering on `quantity` as an integer when the field is a string).
-   **Solution:** Use `SelectFlags.NO_FAIL` to skip invalid elements gracefully, or validate your data schema before querying.

---

**Error: Operation timeout**

-   **Cause:** The CDT is very large or deeply nested, causing the operation to exceed the client timeout.
-   **Solution:** Increase the operation timeout in your client policy, reduce the data size, or consider restructuring the data to reduce nesting depth. See the [Connection Tuning Guide](https://aerospike.com/docs/develop/connection-tuning-guide/) for more information about client timeout settings.

---

**Error: Empty result when data exists**

-   **Cause:** Filters are too restrictive, or the traversal path doesn’t match the actual data structure.
-   **Solution:** Test filters incrementally. Start with `CTX.allChildren()` without filters to verify the structure, then add filters one at a time.