Thanks to visit codestin.com
Credit goes to github.com

Skip to content

bug: Regression in APISIX 3.15.0 – Routes intermittently return 404 when upstream is defined only in Service #13033

@rodpinheiro

Description

@rodpinheiro

Current Behavior

We observed a regression after upgrading from APISIX 3.14.1 to 3.15.0.
With the same configuration, routes that reference a Service (with upstream defined only at the Service level) intermittently return 404 Not Found.

When using APISIX 3.14.1, the behavior is stable and requests are always routed correctly. After upgrading to 3.15.0, the same requests sometimes succeed and sometimes fail with 404.

  • Requests to /employeeapi/healthcheck intermittently return 404.
  • APISIX access log shows the request being forwarded to the upstream, which then appears to respond with 404.
  • However, upstream logs indicate that the request never actually arrived at the backend service.
  • Example APISIX log line:
    172.30.2.4 - apidocportal_monitor [24/Feb/2026:23:49:00 +0000] api-gateway.domain "GET /employeeapi/healthcheck HTTP/1.1" 404 224 0.003 "-" "Mozilla/5.0 ..." xxx.xxx.xxx.xx:80 404 0.002 "http://188xyz.domain"
    

Expected Behavior

  • Requests should be consistently routed to the upstream and actually reach the backend service, without intermittent 404 responses, as observed in version 3.14.1.

Error Logs

No response

Steps to Reproduce

  1. Deploy APISIX 3.15.0 with upstream defined only in Service.
  2. Configure a Route pointing to the Service via service_id.
  3. Enable basic-auth at Service level and consumer-restriction at Route level.
  4. Send repeated requests to the configured URI.
  5. Observe intermittent 404 Not Found responses in APISIX logs, while upstream logs show no incoming requests.

Environment

  • Installation method: Docker
  • etcd image: quay.io/coreos/etcd:v3.6.7
  • APISIX image (working): apache/apisix:3.14.1-debian
  • APISIX image (problematic): apache/apisix:3.15.0-debian

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingcheckingcheck first if this issue occurred

    Type

    No type

    Projects

    Status

    📋 Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions