ardacuhadaroglu opened a new issue, #13799: URL: https://github.com/apache/skywalking/issues/13799
### Search before asking - [x] I had searched in the [issues](https://github.com/apache/skywalking/issues?q=is%3Aissue) and found no similar issues. ### Apache SkyWalking Component OAP server (apache/skywalking) ### What happened When querying traces with both the "Status = Error" filter and an endpoint name filter applied simultaneously, the query returns zero results — even though traces matching both criteria exist in the system. This is reproducible in two ways: 1. SkyWalking Native UI: Selecting a service, then setting both the endpoint filter (e.g. "POST:/event/sync") and the status filter to "Error" at the same time returns no results. 2. Tempo-compatible TraceQL API (via Grafana): The following queries behave inconsistently: Works — returns 3 error traces: { resource.service.name = "logger-producer-server" && status = error } Works — returns 4 traces (3 errors + 1 success, incorrect): { resource.service.name = "logger-producer-server" && name = "POST:/event/sync" } Returns empty — should return 3 error traces: { resource.service.name = "logger-producer-server" && name = "POST:/event/sync" && status = error } The issue appears to be in how the OAP backend intersects the `isError` flag condition with the endpoint name condition at the storage query level. <img width="1743" height="748" alt="Image" src="https://github.com/user-attachments/assets/d9bc87f7-287d-4dec-ab49-adcd6bfe85a6" /> <img width="1753" height="673" alt="Image" src="https://github.com/user-attachments/assets/c050d245-6c96-470a-bb65-06702e176b9f" /> <img width="1756" height="664" alt="Image" src="https://github.com/user-attachments/assets/c5a5d4db-094c-4ccc-88c2-f6ae69178a56" /> ### What you expected to happen When both the endpoint filter and the error status filter are applied together, the query should return only the traces that match both conditions — i.e. traces from the specified endpoint that also have isError = true. In the scenario above, exactly 3 traces were expected (the 3 failed requests to POST:/event/sync), not 0. ### How to reproduce 1. Instrument a Spring Boot service with the SkyWalking Java agent (version compatible with OAP 10.4.0). 2. Send a mix of successful and failing HTTP requests to the same endpoint (e.g. POST /event/sync). In this case: 3 requests returning HTTP 500, 1 request returning HTTP 200. 3. Open SkyWalking Native UI → Trace page. 4. Select the service (e.g. "logger-producer-server"). 5. Set the endpoint filter to "POST:/event/sync". 6. Set the status filter to "Error". 7. Run the query → Result: 0 traces returned. 8. To confirm the data exists: - Clear the endpoint filter, keep only Status = Error → 3 traces returned correctly. - Clear the status filter, keep only the endpoint filter → 4 traces returned (3 error + 1 success). - Both filters together → 0 traces. Alternatively, reproduce via TraceQL on the Tempo-compatible API: { resource.service.name = "logger-producer-server" && name = "POST:/event/sync" && status = error } → Returns empty. ### Anything else _No response_ ### Are you willing to submit a pull request to fix on your own? - [ ] Yes I am willing to submit a pull request on my own! ### Code of Conduct - [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
