Review Changes Before Upgrade
Upgrading an existing APISIX deployment to this version can change plugin defaults, metric labels, and authentication checks. Review these changes before shifting production traffic. Follow the linked plugin and reference pages for field definitions, examples, and procedures.
For a gradual traffic shift onto new nodes, see Canary Deployment.
Observability and Debug Output
- The
Apisix-Pluginsresponse header listsplugin-name#phaseentries in execution order instead of a de-duplicated plugin-name list. Update tools that parse that header. See Debug Mode. apisix_llm_latencyadds atypelabel. Selecttype="total"to keep the previous total-latency meaning. Streaming requests record bothtotalandttft. See Prometheus and Monitor APISIX with Prometheus.- Batch-processor loggers default
max_pending_entriesto8192and discard entries above that limit. Size the backlog against log body size and worker memory. See Batch Processor.
Request and Response Body Limits
Several plugins that buffer request or response bodies now default to a 64 MiB cap. Oversized requests can be rejected. Oversized responses can be truncated or passed through without caching, depending on the plugin. Set max_req_body_size or max_resp_body_size on routes that must accept larger payloads. The field tables are on the affected Plugin Hub pages, including request-validation, response-rewrite, and proxy-cache.
JSON and multipart bodies read for post_arg.* route matching use the same 64 MiB default. A larger body no longer matches the predicate. See Router Options.
AI Plugins
ai-aws-content-moderationruns afterai-proxyorai-proxy-multi, moderates decoded AI content, and defaultsdeny_codeto200. Pair it with an AI proxy plugin. Setdeny_code: 400if clients expect an HTTP error.ai-aliyun-content-moderationdefaults to the latest consecutiveuserturn. Setrequest_check_modeandrequest_check_rolesexplicitly. Assistant history cannot be selected.ai-aliyun-content-moderation,ai-aws-content-moderation, andai-prompt-guarddefaultfail_modetoskipfor unrecognized or non-AI traffic. Setfail_mode: errorwhere that traffic must not pass unchecked.
Authentication and Identity
openid-connectfails closed when the trusted issuer cannot be determined, treatsclaim_validator.audience.match_with_client_idas requiring an audience claim, and enforcesrequired_scopeson authorization-code sessions. Configureclaim_validator.issuer.valid_issuerswhen discovery can be unavailable.- The Admin API rejects a write that would assign the same lookup key to two consumers or credentials for
key-auth,basic-auth,jwt-auth,hmac-auth, or LDAP authentication. The check is best-effort and cannot resolve Secret or environment references. See Consumers. ldap-authnow performs certificate verification whentls_verifyistrue. Self-signed or hostname-mismatched LDAP certificates fail until you install a matching trusted certificate or disable verification deliberately.ldap-authlooks up consumers with the RFC 4514-escaped bind DN. Consumers whose usernames contain characters such as commas or plus signs must use that escapeduser_dnform.
Logging, Forwarding, and Custom Plugins
sls-loggerdefaultsssl_verifytotrueand sends SNI. Custom or self-signed logging endpoints need a trusted certificate, or you must setssl_verify: falseafter assessing the risk.- Lua no longer exposes
ctx.var.var_x_forwarded_proto,ctx.var.var_x_forwarded_host, orctx.var.var_x_forwarded_port. Usecore.request.set_headerto change upstream forwarding headers. See Configuration Files.