<?xml version="1.0" encoding="UTF-8"?>
<!-- AUTOGENERATED FILE. DO NOT EDIT. -->
<feed xmlns="http://www.w3.org/2005/Atom">
  <id>tag:google.com,2016:apigee-x-release-notes</id>
  <title>Apigee X - Release notes</title>
  <link rel="self" href="https://docs.cloud.google.com/feeds/apigee-x-release-notes.xml"/>
  <author>
    <name>Google Cloud Platform</name>
  </author>
  <updated>2026-10-22T00:00:00-07:00</updated>

  <entry>
    <title>October 22, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#October_22_2026</id>
    <updated>2026-10-22T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_22_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On October 22, 2026, we released an updated version of Apigee (1-18-0-apigee-7).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and can take four or more business
days to complete across all Google Cloud zones. Your instances might not have
the features and fixes available until the rollout is complete.</span></aside>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>573663408</strong></td>
<td><strong>Security fix for Apigee.</strong> Upgraded the ingress gateway to patch security vulnerabilities.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td><strong>Security fix for Apigee infrastructure.</strong></td>
</tr>
</tbody>
</table>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>568535165</strong></td>
<td>Skip main_task_wait_time and nio_task_wait_time metrics for the first 12 Prometheus scrapes during Message Processor startup warmup.</td>
</tr>
<tr>
<td><strong>573602919</strong></td>
<td>Fix generated OpenAPI specs' servers[] to carry the Apigee envgroup hostname instead of the backend target host.</td>
</tr>
<tr>
<td><strong>562964081</strong></td>
<td>The sgpUserIntentMatchingMode verdict-log field is now always present, including on dry-run policy records, and shows the mode used for the evaluation, including when sgpUserIntentMatching isn't set (CONSTRAINTS_AND_INTENT, or INTENT_ONLY when no policies match the tool call).</td>
</tr>
<tr>
<td><strong>524115876</strong></td>
<td>Fix an intermittent HTTP 400 error in the OASValidation policy's strict parameter validation that rejected valid requests.</td>
</tr>
<tr>
<td><strong>572025634</strong></td>
<td>Responses with a compressed text/event-stream body to a proxy with an EventFlow now skip EventFlow processing and pass through intact instead of returning a corrupted body.</td>
</tr>
<tr>
<td><strong>549078690</strong></td>
<td>If no SGP policy is attributed for a denial, a customer sees the generic fallback message. This fix short-circuits to show the rationale instead when no matched policy has a configured denial message.</td>
</tr>
<tr>
<td><strong>492041991</strong></td>
<td>VerifyAPIKey and VerifyAccessToken now set the apiproduct.operation.llmTokenQuota.* flow variables only from the LLM operation(s) that matched the request; they are no longer set from unmatched LLM operations or for requests that match no LLM operation.</td>
</tr>
<tr>
<td><strong>567244615</strong></td>
<td>Semantic Governance now evaluates LLM requests it previously skipped, such as OpenAI requests whose message content is an array of parts, which can produce new denials and judge-model usage. It considers every system message rather than only the last, and a non-streaming OpenAI or an Ollama tool call whose arguments are not valid JSON is now an evaluation error.</td>
</tr>
<tr>
<td><strong>567244615</strong></td>
<td>Semantic Governance no longer evaluates a request or response with a field it cannot read when a tool call is involved. It records verdict ERROR naming the field, with status MODEL_ERROR. The inline SemanticGovernance policy instead raises GovernedLLMResponseParseError or GovernedLLMProviderDetectionFailed (HTTP 500), in DRY_RUN too unless continueOnError is true. It also reads every text part of a Gemini system instruction and Gemini tool parameters given as parametersJsonSchema, and no longer loses the rest of a Claude or Gemini request when one field has an unexpected shape.</td>
</tr>
<tr>
<td><strong>560272924</strong></td>
<td>Added continuous-scan bidirectional gRPC streaming support for the SanitizeModelResponse policy over Server-Sent Events (SSE) streams, preserving native LLM provider SSE JSON envelopes and event framing.</td>
</tr>
<tr>
<td><strong>555332621</strong></td>
<td>Model Armor policies now honor HTTPClient.managementplane.skip.proxy: with it set, Model Armor callouts bypass the forward proxy like other googleapis traffic. Streaming (ContinuousScan) Model Armor traffic uses the forward proxy.</td>
</tr>
<tr>
<td><strong>158204922</strong></td>
<td>VerifyJWT now rejects a JWT whose header contains "b64":false, with fault steps.jwt.InvalidToken, as RFC 7797 section 7 requires. Previously, such a token could be accepted if KnownHeaders listed b64, IgnoreCriticalHeaders was true, or the header had no crit.</td>
</tr>
<tr>
<td><strong>158204922</strong></td>
<td>GenerateJWS supports RFC 7797 unencoded payloads. GenerateJWS now raises MissingPayload, InvalidPayload or FailedToResolveVariable for payload errors, where it previously raised GenerationFailed. KnownHeaders and CriticalHeaders in the JWS and JWT policies accept names separated by whitespace, such as one per line. A b64 header supplied through AdditionalHeaders is now rejected, with steps.jws.InvalidNameForAdditionalHeader for GenerateJWS and steps.jwt.InvalidNameForAdditionalHeader for GenerateJWT. A proxy that set b64 through an AdditionalHeaders variable produced an RFC 7797 JWS before this change, and must move to UnencodedPayload, with DetachContent for the detached form.</td>
</tr>
<tr>
<td><strong>158204922</strong></td>
<td>VerifyJWS verifies RFC 7797 unencoded-payload JWS (b64:false), attached or detached. b64 in crit no longer needs a KnownHeaders entry. VerifyJWS rejects b64:false unless crit lists b64, with the new fault steps.jws.UnencodedPayloadNotCritical; IgnoreCriticalHeaders does not change that. DecodeJWS reports the raw payload of such a JWS.</td>
</tr>
<tr>
<td><strong>559228730</strong></td>
<td>ext_proc: ImmediateResponse now carries any Content-Type (raw body bytes + preserved Content-Type); replies too large to buffer use StreamedImmediateResponse.</td>
</tr>
<tr>
<td><strong>544751120</strong></td>
<td>Semantic Governance Policies marked as dry run are now evaluated and logged without blocking the request. Each dry-run policy adds a second judge evaluation per tool-calling response, whose tokens are billed. Dry-run verdicts are written to the semantic-governance-policy log as separate records flagged sgpDryRunPolicyEvaluation=true; queries that count verdicts should add sgpDryRunPolicyEvaluation != true to exclude them.</td>
</tr>
<tr>
<td><strong>554114419</strong></td>
<td>Fixed: an AssignMessage/HTTPModifier/RaiseFault policy that creates a new request (createNew="true") in an HTTP/2 flow can now set the :path and :authority pseudo-headers instead of failing with an invalid-header error.</td>
</tr>
<tr>
<td><strong>567812025</strong></td>
<td>FILESYSTEM persistence mode makes the synchronizer skip Cassandra entirely (no connections, reads, writes, or datastore health probes).</td>
</tr>
<tr>
<td><strong>559009293</strong></td>
<td>Fixed elevated OAuth latency and Cassandra read load for AppGroup apps, including access token verification and token and authorization-code generation, by caching AppGroup lookups in the message processor runtime, matching Developer behavior.</td>
</tr>
<tr>
<td><strong>568860869</strong></td>
<td>Fixed <code>RegularExpressionProtection</code> patterns of the form <code>".<em>...</em>"</code> whose middle section contains regular expression syntax (for example, <code>".<em>?Exception in thread.</em>"</code> or <code>"(?i).<em>&lt;script.</em>&gt;.*"</code>) being matched as literal text instead of as regular expressions. Such patterns now raise <code>steps.regexprotection.ThreatDetected</code> for all matching input.</td>
</tr>
<tr>
<td><strong>564945600</strong></td>
<td>Enhance VerifyAPIKey policy to better handle leading spaces.</td>
</tr>
<tr>
<td><strong>502231886</strong></td>
<td>Fixed the default source templates for SanitizeUserPrompt and SanitizeModelResponse so a policy that omits the source element extracts content correctly when IgnoreUnresolvedVariables is false.</td>
</tr>
<tr>
<td><strong>562964081</strong></td>
<td>Semantic Governance now honors the <code>sgpUserIntentMatching</code> <code>AuthzExtension</code> metadata key (<code>ENABLED</code> or <code>DISABLED</code>) to toggle user-intent matching in policy evaluation; <code>DISABLED</code> evaluates against constraints only.</td>
</tr>
<tr>
<td><strong>565004219</strong></td>
<td>Fixed Semantic Governance Policy skipping evaluation for Anthropic requests that send <code>system</code> as a content-block array (the form ADK and LiteLlm emit). Affected agents are now evaluated, which may produce new denials and new judge-model usage on the consumer project.</td>
</tr>
<tr>
<td><strong>527517087</strong></td>
<td>SGP policy logs written to your project now identify their originating region. resource.type changes from "global" to "generic_node" and the region appears in resource.labels.location. Anything selecting these entries by resource.type="global" must be updated -- including log-based metrics, sinks, exclusion filters and alerts, which stop matching silently rather than erroring.</td>
</tr>
<tr>
<td><strong>575439485</strong></td>
<td>JavaCallout policies that run remotely (per-contract offload) can now pass every value type allowed by the GCP-2025-023 setVariable restriction between policies (collections, maps, arrays, primitive wrappers including Character, Date, BigDecimal, UUID, java.time, atomics, JDK enums, Optional), with their types preserved, instead of failing with steps.remotepolicy.NonSerializableVariable.</td>
</tr>
<tr>
<td><strong>575439485</strong></td>
<td>Remotely executed (per-contract offload) JavaCallout policies with continueOnError="true" now continue the flow when the callout faults, instead of returning HTTP 500.</td>
</tr>
<tr>
<td><strong>567244901</strong></td>
<td>In enforce mode, Semantic Governance now blocks a tool call when the governance check cannot be completed, instead of letting it through.</td>
</tr>
<tr>
<td><strong>573622417</strong></td>
<td>Fixed an issue where istio-ingressgateway forwarded the x-envoy-decorator-operation header to upstream runtime and target backends.</td>
</tr>
<tr>
<td><strong>571679067</strong></td>
<td>removes old version of ApigeeTelemetry CRD.</td>
</tr>
<tr>
<td><strong>571378258</strong></td>
<td>The Apigee Redis container is now built from the Valkey engine (BSD-3-Clause, Linux Foundation) at version 8.1.10. Wire protocol is unchanged (RESP2) and the redis-server/redis-cli binary names are preserved.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td>Updates to infrastructure and libraries.</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>October 21, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#October_21_2026</id>
    <updated>2026-10-21T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_21_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p><strong>Apigee Emulator</strong></p>
<h3 id="apigee_emulator_v202">Apigee Emulator v2.0.2</h3>
<p>On October 21, 2026, we released Apigee Emulator version 2.0.2.</p>
<p>This release upgrades the Apigee Emulator runtime to Java 21 (Eclipse Temurin
JRE 21) to align local proxy development and policy execution with the
production Apigee runtime, while keeping the embedded Apache Cassandra
datastore pinned to Java 8. It also addresses 46 security vulnerabilities across
Netty, Jackson, Apache Log4j, BouncyCastle, Apache CXF, Eclipse Jetty, and the
embedded Cassandra Go standard library health-check binary.</p>
<p>The emulator image is available at
<a href="https://console.cloud.google.com/artifacts/docker/apigee-release/us/gcr.io/hybrid%2Fapigee-emulator">Artifact Registry</a>.</p>
<p>To upgrade, update the emulator version in your Cloud Code for VS Code settings
to <code>2.0.2</code>. See
<a href="https://docs.cloud.google.com/apigee/docs/api-platform/local-development/vscode/manage-apigee-emulator#choose_the_emulator_version">Manage the Apigee Emulator</a>
for details.</p>
<h3>Feature</h3>
<p><strong>Apigee Emulator</strong></p>
<h4 id="changed_in_this_release">Changed in this release</h4>
<ul>
<li>Upgraded the Apigee Emulator runtime JVM to Eclipse Temurin JRE 21
(<code>21.0.12.1.0+1-0</code>, from JRE 11 <code>11.0.31+11</code>), adding JVM 21 compatibility
flags (<code>-Djava.security.manager=allow</code> and <code>--add-opens</code> module flags) for
<code>JavaCallout</code>, JavaScript (Rhino), and Python (Jython) policies while keeping
the embedded Apache Cassandra <code>4.0.19</code> datastore pinned to Eclipse Temurin
JRE 8.</li>
<li>Upgraded Netty to <code>4.1.137.Final</code> (from <code>4.1.135.Final</code>) and updated
<code>netty-tcnative-boringssl-static</code> and <code>netty-tcnative-classes</code> to
<code>2.0.81.Final</code> (from <code>2.0.77.Final</code>).</li>
<li>Upgraded Jackson (<code>jackson-core</code>, <code>jackson-databind</code>, and
<code>jackson-dataformat-yaml</code>) to <code>2.21.7</code> (from <code>2.18.6</code> and <code>2.19.2</code>) and
<code>jackson-annotations</code> to <code>2.21</code>.</li>
<li>Upgraded shaded Apache Log4j (<code>log4j-api</code> and <code>log4j-core</code>) in
<code>ConfigUtil.jar</code> to <code>2.25.5</code> (from <code>2.17.1</code> and <code>2.25.4</code>).</li>
<li>Upgraded BouncyCastle (<code>bcprov-jdk18on</code>, <code>bcpkix-jdk18on</code>, and
<code>bcutil-jdk18on</code>) to <code>1.85</code> (from <code>1.84</code>).</li>
<li>Upgraded Apache CXF (<code>cxf-*</code>) to <code>3.6.12</code> (from <code>3.5.11</code>).</li>
<li>Upgraded gRPC to <code>1.82.3</code> (from <code>1.62.2</code>), Protobuf (<code>protobuf-java</code> and
<code>protobuf-java-util</code>) to <code>4.33.6</code> (from <code>3.25.5</code>), and Guava to <code>33.5.0-jre</code>
(from <code>33.4.8-jre</code>).</li>
<li>Removed unused <code>org.eclipse.jetty:jetty-*</code> (<code>9.4.58.v20250814</code>) and
<code>commons-collections:commons-collections</code> (<code>3.2.2</code>) JARs from the emulator
distribution.</li>
<li>Refreshed the Cassandra base image to pick up Go standard library <code>1.27.0</code>
(from <code>1.25.11</code>) in the embedded <code>/opt/apigee/ready</code> health-check binary.</li>
</ul>
<h3>Security</h3>
<p><strong>Apigee Emulator</strong></p>
<h4 id="security">Security</h4>
<p>This release addresses 46 security vulnerabilities across Netty, the embedded
Go standard library, Jackson, Apache Log4j, Eclipse Jetty, BouncyCastle, and
Apache CXF:</p>
<table>
<thead>
<tr>
<th>CVE / Advisory</th>
<th>Component</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-75595">CVE-2026-75595</a></td>
<td>Netty (<code>netty-handler</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-75596">CVE-2026-75596</a></td>
<td>Netty (<code>netty-handler</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-59901">CVE-2026-59901</a></td>
<td>Netty (<code>netty-codec</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-55831">CVE-2026-55831</a></td>
<td>Netty (<code>netty-codec-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-55833">CVE-2026-55833</a></td>
<td>Netty (<code>netty-codec-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-56745">CVE-2026-56745</a></td>
<td>Netty (<code>netty-codec-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-56746">CVE-2026-56746</a></td>
<td>Netty (<code>netty-codec-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-59898">CVE-2026-59898</a></td>
<td>Netty (<code>netty-codec-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-59899">CVE-2026-59899</a></td>
<td>Netty (<code>netty-codec-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-59903">CVE-2026-59903</a></td>
<td>Netty (<code>netty-codec-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-59921">CVE-2026-59921</a></td>
<td>Netty (<code>netty-codec-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-56819">CVE-2026-56819</a></td>
<td>Netty (<code>netty-codec-http2</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-59900">CVE-2026-59900</a></td>
<td>Netty (<code>netty-codec-http2</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-73508">CVE-2026-73508</a></td>
<td>Netty (<code>netty-codec-dns</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39821">CVE-2026-39821</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33818">CVE-2026-33818</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39822">CVE-2026-39822</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42505">CVE-2026-42505</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-56853">CVE-2026-56853</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-56858">CVE-2026-56858</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-56859">CVE-2026-56859</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-56860">CVE-2026-56860</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-56862">CVE-2026-56862</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-56864">CVE-2026-56864</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-56865">CVE-2026-56865</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-68494">CVE-2026-68494</a></td>
<td>Jackson (<code>jackson-core</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-18401">CVE-2026-18401</a></td>
<td>Jackson (<code>jackson-core</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-54512">CVE-2026-54512</a></td>
<td>Jackson (<code>jackson-databind</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-54513">CVE-2026-54513</a></td>
<td>Jackson (<code>jackson-databind</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-54514">CVE-2026-54514</a></td>
<td>Jackson (<code>jackson-databind</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-54515">CVE-2026-54515</a></td>
<td>Jackson (<code>jackson-databind</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-59888">CVE-2026-59888</a></td>
<td>Jackson (<code>jackson-databind</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-59889">CVE-2026-59889</a></td>
<td>Jackson (<code>jackson-databind</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-77310">CVE-2026-77310</a></td>
<td>Jackson (<code>jackson-databind</code>)</td>
</tr>
<tr>
<td><a href="https://github.com/advisories/GHSA-mhm7-754m-9p8w">GHSA-mhm7-754m-9p8w</a></td>
<td>Jackson (<code>jackson-databind</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-68161">CVE-2025-68161</a></td>
<td>Apache Log4j (<code>log4j-core</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-34477">CVE-2026-34477</a></td>
<td>Apache Log4j (<code>log4j-core</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-34480">CVE-2026-34480</a></td>
<td>Apache Log4j (<code>log4j-core</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-49844">CVE-2026-49844</a></td>
<td>Apache Log4j (<code>log4j-api</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-10050">CVE-2026-10050</a></td>
<td>Eclipse Jetty (<code>jetty-security</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-2332">CVE-2026-2332</a></td>
<td>Eclipse Jetty (<code>jetty-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2024-6763">CVE-2024-6763</a></td>
<td>Eclipse Jetty (<code>jetty-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-6790">CVE-2026-6790</a></td>
<td>Eclipse Jetty (<code>jetty-server</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-8763">CVE-2026-8763</a></td>
<td>BouncyCastle (<code>bcprov-jdk18on</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-13506">CVE-2026-13506</a></td>
<td>BouncyCastle (<code>bcprov-jdk18on</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-50645">CVE-2026-50645</a></td>
<td>Apache CXF (<code>cxf-core</code>)</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>October 20, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#October_20_2026</id>
    <updated>2026-10-20T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_20_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On October 20th, 2026, we began maintenance updates of Apigee instances <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">configured for maintenance windows</a>.</p>
<p>If you set a preferred window for maintenance for your instance, and your instance version is
below <strong>1-18-0-apigee-6</strong>, your instance will be updated to <strong>1-18-0-apigee-6</strong> within the
next seven to 21 days. A notification containing the expected date of upgrade will be sent within the next two business days.</p>
<aside class="note">Note: Instances that meet either of the following two criteria will <b>not</b> be updated:
<ul>
<li>Your instance has a DNS misconfiguration, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/known-issues">Known Issue 445936920</a>.</li>
<li>Your instance uses an Apigee Java Library that has been removed, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_16_2025">Apigee release notes dated October 16, 2025</a>.</li>
</ul></aside>
<p>For more information on participating in scheduled maintenance windows, see <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance">Maintenance overview</a> and <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">Manage Apigee instance maintenance windows</a>.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>October 15, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#October_15_2026</id>
    <updated>2026-10-15T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_15_2026"/>
    <content type="html"><![CDATA[<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>466116259</strong></td>
<td>Updated the startup script for the managed instance group (MIG) that routes external traffic to Apigee. <code>net.ipv4.ip_forward</code> is now written to <code>/etc/sysctl.d/</code>, so an instance no longer stops forwarding traffic when a reboot or an OS update resets it. The script does not change unrelated <code>iptables</code> NAT rules. Instances pick up the change the next time they are restarted or recreated.</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>October 02, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#October_02_2026</id>
    <updated>2026-10-02T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_02_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On October 2, 2026, we released an updated version of Apigee (1-18-0-apigee-6).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and can take four or more business
days to complete across all Google Cloud zones. Your instances might not have
the features and fixes available until the rollout is complete.</span></aside>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>564386425</strong></td>
<td><strong>Security fix for Apigee.</strong> Upgraded the Apigee ingress gateway (ASM) to patch security vulnerabilities.</td>
</tr>
<tr>
<td><strong>561666530</strong></td>
<td><strong>Security fix for Apigee.</strong> Upgraded the Prometheus library to patch the following vulnerabilities: <p><ul><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42151">CVE-2026-42151</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42154">CVE-2026-42154</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-44903">CVE-2026-44903</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-40179">CVE-2026-40179</a></li></ul></p></td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td><strong>Security fix for Apigee infrastructure.</strong></td>
</tr>
</tbody>
</table>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>432315283</strong></td>
<td>Fixed a multi-certificate truststore so that its trust anchors take effect without a Message Processor restart when <code>features.truststore.multi_cert_bundle.enabled</code> is toggled at runtime; the outbound SSL context is now rebuilt automatically on any trust-anchor change.</td>
</tr>
<tr>
<td><strong>565072374</strong></td>
<td>VerifyJWT policies that use a JWKS <code>uriRef</code> no longer return <code>steps.jwt.NoMatchingPublicKey</code> on the first request after the JWKS cache TTL expires when the identity provider has rotated to a new key ID. The cache now re-fetches synchronously when its entry expires.</td>
</tr>
<tr>
<td><strong>535395491</strong></td>
<td>Extension Processor (ext_proc) denials now return the status and body that the policy or FaultRule produced, instead of always returning HTTP 500.</td>
</tr>
<tr>
<td><strong>558421499</strong></td>
<td>Apigee runtime runs on JRE 21.</td>
</tr>
<tr>
<td><strong>517953321</strong></td>
<td>The <code>lookupcache.&lt;n&gt;.isEncrypted</code> and <code>responsecache.&lt;n&gt;.isEncrypted</code> flow variables now report the per-entry on-disk encryption state of the L2 cache, rather than approximating whether the cache-encryption key is loaded. L1 cache hits report <code>false</code>. Review any policy conditions that rely on these flow variables.</td>
</tr>
<tr>
<td><strong>563557547</strong></td>
<td>Fixed EventFlow (Server-Sent Events) coalescing multiple events into a single policy invocation under burst load on the http-adaptor data path, which produced malformed SSE output to the client.</td>
</tr>
<tr>
<td><strong>562740573</strong></td>
<td>Apigee Analytics now populates the <code>processing_mode</code> dimension, distinguishing proxy traffic from extension-processor traffic. This dimension is not populated in billing-only analytics mode.</td>
</tr>
<tr>
<td><strong>357042873</strong></td>
<td>Stopped redirecting <code>apigee-cassandra-schema-readiness</code> init container logs to <code>/dev/null</code>, improving troubleshooting. Workloads undergo a rolling restart upon upgrade.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td>Updates to infrastructure and libraries.</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>September 21, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#September_21_2026</id>
    <updated>2026-09-21T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#September_21_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On September 21st, 2026, we began maintenance updates of Apigee instances <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">configured for maintenance windows</a>.</p>
<p>If you set a preferred window for maintenance for your instance, and your instance version is
below <strong>1-18-0-apigee-4</strong>, your instance will be updated to <strong>1-18-0-apigee-4</strong> within the
next seven to 21 days. A notification containing the expected date of upgrade will be sent within the next two business days.</p>
<aside class="note">Note: Instances that meet either of the following two criteria will <b>not</b> be updated:
<ul>
<li>Your instance has a DNS misconfiguration, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/known-issues">Known Issue 445936920</a>.</li>
<li>Your instance uses an Apigee Java Library that has been removed, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_16_2025">Apigee release notes dated October 16, 2025</a>.</li>
</ul></aside>
<p>For more information on participating in scheduled maintenance windows, see <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance">Maintenance overview</a> and <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">Manage Apigee instance maintenance windows</a>.</p>
<h3>Announcement</h3>
<p>On September 21st, 2026, we released an updated version of Apigee (1-18-0-apigee-5).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and can take four or more business days to be completed across all Google Cloud zones. Your instances might not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>560130499</strong></td>
<td><strong>Security fix for Apigee.</strong> Fixed a security issue in the Java Callout policy.</td>
</tr>
<tr>
<td><strong>547681234</strong></td>
<td><strong>Security fix for Apigee.</strong> Patched <a href="https://nvd.nist.gov/vuln/detail/CVE-2026-69247">CVE-2026-69247</a> by upgrading a third-party library used by the Apigee model-security engine.</td>
</tr>
<tr>
<td><strong>556568593</strong></td>
<td><strong>Security fix for Apigee.</strong> Patched <a href="https://nvd.nist.gov/vuln/detail/CVE-2026-84304">CVE-2026-84304</a> by upgrading gRPC.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td><strong>Security fix for Apigee infrastructure.</strong></td>
</tr>
</tbody>
</table>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>559009293</strong></td>
<td>Fixed elevated OAuth and VerifyAPIKey latency and Cassandra read load for AppGroup apps by caching the AppGroup entity in the Message Processor runtime, matching Developer-app behavior.</td>
</tr>
<tr>
<td><strong>558888960</strong></td>
<td>Fixed distributed tracing so that the target URL is included as a span attribute in all scenarios.</td>
</tr>
<tr>
<td><strong>556750755</strong></td>
<td>Fixed EventFlow (Server-Sent Events) dropping or truncating events that follow a large (greater than 16 KB) event under load on the http-adaptor data path.</td>
</tr>
<tr>
<td><strong>553931019</strong></td>
<td>The MCP tools/list method now aggregates tools across all approved API products.</td>
</tr>
<tr>
<td><strong>531783017</strong></td>
<td>Implemented the <code>&lt;Enforce&gt;true&lt;/Enforce&gt;</code> element of SSLInfo for a Syslog endpoint, so that the syslog target's TLS server identity is verified.</td>
</tr>
<tr>
<td><strong>554114419</strong></td>
<td>Policies can now change request pseudo-headers (for example, :path and :authority) when HTTP/2 is in use.</td>
</tr>
<tr>
<td><strong>548763108</strong></td>
<td>Blocked outbound HTTP from the Message Processor to Kubernetes-internal targets.</td>
</tr>
<tr>
<td><strong>513032450</strong></td>
<td>Restored a 15-second TCP keep-alive on the Apigee Connect control-plane connection so that a silently dropped connection recovers in seconds rather than approximately two hours.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td>Updates to infrastructure and libraries.</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>September 10, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#September_10_2026</id>
    <updated>2026-09-10T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#September_10_2026"/>
    <content type="html"><![CDATA[<h3>Fixed</h3>
<p>Addendum to Apigee release notes dated <a href="#August_27_2026">August 27, 2026</a> (1-18-0-apigee-4).</p>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>502540992</strong></td>
<td>Fixed an issue where the SemanticCacheLookup policy was incompatible with Vertex AI Vector Search Private Service Connect (PSC) endpoints.</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>September 09, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#September_09_2026</id>
    <updated>2026-09-09T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#September_09_2026"/>
    <content type="html"><![CDATA[<h3>Feature</h3>
<p><b>SemanticCacheLookup policy supports non-default Vector Search distance measures</b></p>
<p>Available in Apigee <code>1-18-0-apigee-4</code> and later. A new optional
<code>&lt;DistanceMeasureType&gt;</code> element accepts <code>DOT_PRODUCT_DISTANCE</code> (the
default, and the existing behavior), <code>COSINE_DISTANCE</code>,
<code>SQUARED_L2_DISTANCE</code> and <code>L1_DISTANCE</code>. The policy now compares
<code>&lt;Threshold&gt;</code> in the direction the declared measure implies, so declaring a
non-default measure requires re-tuning the threshold in the same edit. The 0-to-1 restriction on
<code>&lt;Threshold&gt;</code> is also removed.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>August 27, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#August_27_2026</id>
    <updated>2026-08-27T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#August_27_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On August 27th, 2026, we released an updated version of Apigee (1-18-0-apigee-4).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and may take four or more business days to be completed across all Google Cloud zones. Your instances may not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>507878328</strong></td>
<td>Upgraded the Apigee runtime to run on JDK 17, while maintaining backward compatibility with JDK 11.</td>
</tr>
<tr>
<td><strong>530965355</strong></td>
<td>Added an opt-in Message Processor connection-failure back-off (CWC property HTTPClient.backoff.enabled, defaults to false) that prevents the Message Processor from consuming excessive CPU when a target is completely unavailable.</td>
</tr>
<tr>
<td><strong>532793298</strong></td>
<td>Fixed an API product bug where combining a payloadOperationGroup with a REST or llmOperationGroup rejected REST/LLM traffic with a 401.</td>
</tr>
<tr>
<td><strong>534420582</strong></td>
<td>The JSONThreatProtection policy adds a new optional child element &lt;RejectDuplicateKeys&gt; that rejects request bodies containing duplicate JSON keys within the same object. Defaults to false to preserve existing behavior.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td>Updates to infrastructure and libraries.</td>
</tr>
</tbody>
</table>
<p>This list is incomplete; see entries for
<a href="#September_09_2026">September 9, 2026</a> and <a href="#September_10_2026">September 10, 2026</a>.</p>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>544570126</strong></td>
<td><strong>Security fix for Apigee.</strong> Fixed a security issue in the PythonScript policy.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td><strong>Security fix for Apigee infrastructure.</strong></td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>August 13, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#August_13_2026</id>
    <updated>2026-08-13T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#August_13_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On August 13th, 2026, we began maintenance updates of Apigee instances <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">configured for maintenance windows</a>.</p>
<p>If you set a preferred window for maintenance for your instance, and your instance version is
below <strong>1-18-0-apigee-2</strong>, your instance will be updated to <strong>1-18-0-apigee-2</strong> within the
next seven to 21 days. A notification containing the expected date of upgrade will be sent within the next two business days.</p>
<aside class="note">Note: Instances that meet either of the following two criteria will <b>not</b> be updated:
<ul>
<li>Your instance has a DNS misconfiguration, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/known-issues">Known Issue 445936920</a>.</li>
<li>Your instance uses an Apigee Java Library that has been removed, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_16_2025">Apigee release notes dated October 16, 2025</a>.</li>
</ul></aside>
<p>For more information on participating in scheduled maintenance windows, see <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance">Maintenance overview</a> and <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">Manage Apigee instance maintenance windows</a>.</p>
<h3>Announcement</h3>
<p>On August 13th, 2026, we released an updated version of Apigee (1-18-0-apigee-3).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and may take four or more business days to be completed across all Google Cloud zones. Your instances may not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>532147587</strong></td>
<td>To fix forward proxy support.</td>
</tr>
<tr>
<td><strong>537657987</strong></td>
<td>Fixed a bug where watcher failed to reconcile all routes if an environment was not found in the control plane.</td>
</tr>
<tr>
<td><strong>543022076</strong></td>
<td>Google Cloud BOM upgrade (protobuf 4.x, gRPC 1.81, Guava 33.5). One user-visible change: a malformed inbound gRPC request frame is now reported to the client as grpc-status INTERNAL(13) and recorded in analytics as x-apigee.grpc.status=13, where it was previously an Apigee ServiceUnavailable fault seen as UNAVAILABLE(14) with no x-apigee.grpc.status recorded. Otherwise no user facing impact, but any prod issue related to gcp, protobuf or gRPC may relate to this.</td>
</tr>
<tr>
<td><strong>542242046</strong></td>
<td>Fixed LLMTokenQuota metering the request against an arbitrary quota bucket when the API Product declared multiple models and the request carried no model.</td>
</tr>
<tr>
<td><strong>531731614</strong></td>
<td>Apigee analytics fields ai_llm_response_token_count, ai_llm_prompt_token_count, ai_llm_model_name, and ai_llm_model_provider are available in the Custom Report when LLMTokenQuota and PromptTokenLimit policies are used in Apigee proxies.</td>
</tr>
<tr>
<td><strong>492044413</strong></td>
<td>LLMTokenQuota resolves the model from the API Product LLM Operation when LLMModelSource is omitted and the request body has no model field.</td>
</tr>
<tr>
<td><strong>67169710</strong></td>
<td>Adds an opt-in &lt;DynamicClientIdSupported&gt; boolean XML element to the OAuthV2 policy. When true, AbstractOAuthStepExecution.extractClientDetails() preserves any non-empty ClientID/ClientSecret already present on the OAuthClientContext.</td>
</tr>
<tr>
<td><strong>531731614</strong></td>
<td>Apigee auto identifies the providers and publishes them to analytics.</td>
</tr>
<tr>
<td><strong>537396574</strong></td>
<td>Added feature to rotate the apigee-ca certificate.</td>
</tr>
<tr>
<td><strong>540861752</strong></td>
<td>Aligned the ApigeeDeployment conversion hub with its v1alpha3 storage version. Internal change; no effect on existing ApigeeDeployment resources.</td>
</tr>
<tr>
<td><strong>540861752</strong></td>
<td>Aligned the ApigeeDeployment custom resource's conversion hub with its v1alpha3 storage version. This internal change does not affect existing ApigeeDeployment resources.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td>Updates to infrastructure and libraries.</td>
</tr>
</tbody>
</table>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>535928300</strong></td>
<td><strong>Security fix for Apigee.</strong> Fixed a security issue in JWT refresh token revocation handling.</td>
</tr>
<tr>
<td><strong>539515020</strong></td>
<td><strong>Security fix for Apigee.</strong> Fixed a security issue in the MessageValidation policy.</td>
</tr>
<tr>
<td><strong>535928530</strong></td>
<td><strong>Security fix for Apigee.</strong> Fixed a security issue in the OAuthV2 policy.</td>
</tr>
<tr>
<td><strong>535683286</strong></td>
<td><strong>Security fix for Apigee.</strong> Fixed a security issue in HTTP target interim-response handling.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td><strong>Security fix for Apigee infrastructure.</strong></td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>July 27, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#July_27_2026</id>
    <updated>2026-07-27T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#July_27_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On July 27th, 2026, we released an updated version of Apigee (1-18-0-apigee-2).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and may take four or more business days to be completed across all Google Cloud zones. Your instances may not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Feature</h3>
<p><b>SanitizeUserPrompt and SanitizeModelResponse policies now support function calling</b></p>
<p>The SanitizeUserPrompt and SanitizeModelResponse policies now handle LLM function calling
(tool use) flows. Two new optional XML elements extract function calling content for
Model Armor sanitization:</p>
<ul>
<li><code>&lt;FunctionResponseSource&gt;</code> in SanitizeUserPrompt: extracts function/tool
response data from user turns. Used as a fallback when <code>&lt;UserPromptSource&gt;</code>
returns empty on function calling turns.</li>
<li><code>&lt;FunctionCallSource&gt;</code> in SanitizeModelResponse: extracts function call
arguments from model responses. Used as a fallback when <code>&lt;LLMResponseSource&gt;</code>
returns empty.</li>
</ul>
<p>Default templates target the Gemini format and require no additional configuration.
For OpenAI and Anthropic formats, configure custom JSONPath templates.
For more information, see
<a href="https://docs.cloud.google.com/apigee/docs/api-platform/reference/policies/sanitize-user-prompt-policy#functionresponsesource">FunctionResponseSource</a> and
<a href="https://docs.cloud.google.com/apigee/docs/api-platform/reference/policies/sanitize-llm-response-policy#functioncallsource">FunctionCallSource</a>.</p>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>534852923</strong></td>
<td><strong>Security fix for Apigee.</strong> Fixed a security issue in the Java Callout policy.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td><strong>Security fix for Apigee infrastructure.</strong></td>
</tr>
</tbody>
</table>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>N/A</strong></td>
<td>Updates to infrastructure and libraries.</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>July 16, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#July_16_2026</id>
    <updated>2026-07-16T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#July_16_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On July 16th, 2026, we began maintenance updates of Apigee instances <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">configured for maintenance windows</a>.</p>
<p>If you set a preferred window for maintenance for your instance, and your instance version is
below <strong>1-17-0-apigee-10</strong>, your instance will be updated to <strong>1-17-0-apigee-10</strong> within the
next seven to 21 days. A notification containing the expected date of upgrade will be sent within the next two business days.</p>
<aside class="note">Note: Instances that meet either of the following two criteria will <b>not</b> be updated:
<ul>
<li>Your instance has a DNS misconfiguration, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/known-issues">Known Issue 445936920</a>.</li>
<li>Your instance uses an Apigee Java Library that has been removed, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_16_2025">Apigee release notes dated October 16, 2025</a>.</li>
</ul></aside>
<p>For more information on participating in scheduled maintenance windows, see <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance">Maintenance overview</a> and <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">Manage Apigee instance maintenance windows</a>.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>July 15, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#July_15_2026</id>
    <updated>2026-07-15T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#July_15_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On July 15th, 2026, we released an updated version of Apigee (1-18-0-apigee-1).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and may take four or more business days to be completed across all Google Cloud zones. Your instances may not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>527586459</strong></td>
<td>Fixed a cache policy throttling bug (CacheThrottlerV2 key poisoning) to enhance reliability.</td>
</tr>
<tr>
<td><strong>525697701</strong></td>
<td>Fixed an issue where API proxy deployments could get stuck during basepath migrations in Apigee X.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td>Updates to infrastructure and libraries.</td>
</tr>
</tbody>
</table>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>527415966, 524656652</strong></td>
<td><strong>Security fix for Apigee.</strong> Upgraded the Apigee ingress gateway (ASM) to patch security vulnerabilities.</td>
</tr>
<tr>
<td><strong>527956223</strong></td>
<td><strong>Security fix for Apigee.</strong> Enhanced security in the Java Callout policy to prevent sandbox escape.</td>
</tr>
<tr>
<td><strong>519729209</strong></td>
<td><strong>Security fix for Apigee.</strong> Fixed a SAML XML Signature Wrapping (XSW) vulnerability in the ValidateSAMLAssertion policy.</td>
</tr>
<tr>
<td><strong>530886487</strong></td>
<td><strong>Security fix for Apigee.</strong> Upgraded the apigee-connect-agent to patch <a href="https://nvd.nist.gov/vuln/detail/CVE-2026-25680">CVE-2026-25680</a>.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td><strong>Security fix for Apigee infrastructure.</strong></td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>July 08, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#July_08_2026</id>
    <updated>2026-07-08T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#July_08_2026"/>
    <content type="html"><![CDATA[<h3>Security</h3>
<p>An Improper Input Validation vulnerability in BigQuery DAO in Google Cloud Apigee versions prior to 2026-06-12 on Google Cloud Platform allowed an authenticated attacker to exfiltrate cross-tenant data.</p>
<p>This vulnerability was patched on 12 June 2026 on the Apigee Servers, and no customer action is needed. Apigee hybrid was not affected.</p>
<p>For more information, see <a href="http://cve.org/CVERecord?id=CVE-2026-12879">CVE-2026-12879</a>.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>July 06, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#July_06_2026</id>
    <updated>2026-07-06T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#July_06_2026"/>
    <content type="html"><![CDATA[<h3>Feature</h3>
<p><strong>Support for payload operations matching in API Products</strong></p>
<p>Apigee now supports payload operations matching (<code>payloadOperationGroup</code>) in API
Products, powered by the new <strong>ParsePayload</strong> policy.</p>
<p>Payload operations matching allows you to define API Product operations that
match fields within request payloads, such as JSON-RPC requests used by the
Model Context Protocol (MCP). Apigee can then route, monetize, authorize, and
apply distinct quota limits to traffic based on the derived payload operation.</p>
<p>This feature is available to all Apigee X customers in all supported regions
with no additional charge. For more information, see <a href="https://docs.cloud.google.com/apigee/docs/api-platform/apigee-mcp/manage-mcp-tool-access">Manage MCP tool access
with API products</a>
and the <a href="https://docs.cloud.google.com/apigee/docs/api-platform/reference/policies/parse-payload-policy">ParsePayload policy
reference</a>.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>June 24, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#June_24_2026</id>
    <updated>2026-06-24T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#June_24_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p><strong>Apigee Emulator</strong></p>
<h3 id="apigee_emulator_v201">Apigee Emulator v2.0.1</h3>
<p>On June 24, 2026, we released Apigee Emulator version 2.0.1.</p>
<p>This is a security-only hotfix release on top of v2.0.0 that addresses
10 security vulnerabilities in the Netty networking library and the embedded
Cassandra Go standard library health-check binary. There are no functional,
API, or configuration changes -- v2.0.1 is a drop-in replacement for v2.0.0.</p>
<p>The emulator image is available at
<a href="https://console.cloud.google.com/artifacts/docker/apigee-release/us/gcr.io/hybrid%2Fapigee-emulator">Google Artifact Registry</a>.</p>
<p>To upgrade, update the emulator version in your VS Code Cloud Code settings
to <code>2.0.1</code>. See
<a href="https://docs.cloud.google.com/apigee/docs/api-platform/local-development/vscode/manage-apigee-emulator#choose_the_emulator_version">Manage the Apigee Emulator</a>
for details.</p>
<h3>Feature</h3>
<p><strong>Apigee Emulator</strong></p>
<h4 id="changed_in_this_release">Changed in this release</h4>
<ul>
<li>Upgraded Netty to <code>4.1.135.Final</code> (from <code>4.1.133.Final</code>) and pinned all
transitive <code>netty-*</code> artifacts via <code>netty-bom</code>.</li>
<li>Refreshed the Cassandra base image to pick up Go standard library <code>1.25.11</code>
(from <code>1.25.10</code>) in the embedded health-check binary.</li>
<li>Updated <code>netty-tcnative-boringssl-static</code> classifier variants from
<code>2.0.53.Final</code> to <code>2.0.77.Final</code>.</li>
</ul>
<h3>Security</h3>
<p><strong>Apigee Emulator</strong></p>
<h4 id="security">Security</h4>
<p>This release addresses 10 security vulnerabilities in the Netty networking
library and the embedded Go standard library. All Netty fixes come from
upgrading to <code>4.1.135.Final</code>; all Go standard library fixes come from a
Cassandra base image rebuild against Go <code>1.25.11</code>.</p>
<table>
<thead>
<tr>
<th>CVE</th>
<th>Component</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-50010">CVE-2026-50010</a></td>
<td>Netty (<code>netty-handler</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-50020">CVE-2026-50020</a></td>
<td>Netty (<code>netty-codec-http</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-50560">CVE-2026-50560</a></td>
<td>Netty (<code>netty-codec-http2</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-48043">CVE-2026-48043</a></td>
<td>Netty (<code>netty-codec-http2</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-44249">CVE-2026-44249</a></td>
<td>Netty (<code>netty-handler</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-45416">CVE-2026-45416</a></td>
<td>Netty (<code>netty-handler</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-47244">CVE-2026-47244</a></td>
<td>Netty (<code>netty-codec-http2</code>)</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-27145">CVE-2026-27145</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42504">CVE-2026-42504</a></td>
<td>Go standard library</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42507">CVE-2026-42507</a></td>
<td>Go standard library</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>June 22, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#June_22_2026</id>
    <updated>2026-06-22T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#June_22_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On June 22nd, 2026, we released an updated version of Apigee (1-17-0-apigee-10).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and may take four or more business days to be completed across all Google Cloud zones. Your instances may not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>519996459</strong></td>
<td><strong>Security fix for Apigee.</strong> Upgraded the Apigee ingress gateway to patch the following vulnerabilities: <p><ul><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-27143">CVE-2026-27143</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2019-14993">CVE-2019-14993</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-39155">CVE-2021-39155</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2021-39156">CVE-2021-39156</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-23635">CVE-2022-23635</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-27140">CVE-2026-27140</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-27144">CVE-2026-27144</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-29181">CVE-2026-29181</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-32280">CVE-2026-32280</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-32281">CVE-2026-32281</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-32283">CVE-2026-32283</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33811">CVE-2026-33811</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33814">CVE-2026-33814</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-34986">CVE-2026-34986</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-35469">CVE-2026-35469</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39820">CVE-2026-39820</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39836">CVE-2026-39836</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39883">CVE-2026-39883</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-4046">CVE-2026-4046</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42499">CVE-2026-42499</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42501">CVE-2026-42501</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42504">CVE-2026-42504</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-31045">CVE-2022-31045</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-27145">CVE-2026-27145</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-32282">CVE-2026-32282</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-32288">CVE-2026-32288</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-32289">CVE-2026-32289</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39350">CVE-2026-39350</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39817">CVE-2026-39817</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39819">CVE-2026-39819</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39823">CVE-2026-39823</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39825">CVE-2026-39825</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39826">CVE-2026-39826</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-41413">CVE-2026-41413</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42507">CVE-2026-42507</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-4437">CVE-2026-4437</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-4438">CVE-2026-4438</a></li></ul></p></td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td><strong>Security fix for Apigee infrastructure.</strong></td>
</tr>
</tbody>
</table>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>515788622</strong></td>
<td>Upgraded the default outbound TLS protocol from TLSv1.2 to TLSv1.3 on JVMs that support it. Per-proxy <code>&lt;SSLInfo&gt;&lt;Protocols&gt;</code> settings continue to take precedence, and the new <code>HTTPClient.outbound.tls.protocol</code> override lets operators force a specific protocol.</td>
</tr>
<tr>
<td><strong>184266748</strong></td>
<td>Fixed an issue where ApigeeDatastore TLS certificate creation could fail in namespaces with longer names when the certificate common name exceeded the 64-byte limit.</td>
</tr>
<tr>
<td><strong>286069772</strong></td>
<td>Added a per-gateway <code>proxyProtocol.mode</code> property (strict, permissive, disable) on Apigee ingress gateway components to opt in to HAProxy PROXY-protocol parsing. The property defaults to disable.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td>Updates to infrastructure and libraries.</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>June 18, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#June_18_2026</id>
    <updated>2026-06-18T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#June_18_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On June 18th, 2026, we began maintenance updates of Apigee instances <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">configured for maintenance windows</a>.</p>
<p>If you set a preferred window for maintenance for your instance, and your instance version is
below <strong>1-17-0-apigee-9</strong>, your instance will be updated to <strong>1-17-0-apigee-9</strong> within the
next seven to 21 days. A notification containing the expected date of upgrade will be sent within the next two business days.</p>
<aside class="note">Note: Instances that meet either of the following two criteria will <b>not</b> be updated:
<ul>
<li>Your instance has a DNS misconfiguration, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/known-issues">Known Issue 445936920</a>.</li>
<li>Your instance uses an Apigee Java Library that has been removed, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_16_2025">Apigee release notes dated October 16, 2025</a>.</li>
</ul></aside>
<p>For more information on participating in scheduled maintenance windows, see <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance">Maintenance overview</a> and <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">Manage Apigee instance maintenance windows</a>.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>June 08, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#June_08_2026</id>
    <updated>2026-06-08T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#June_08_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On June 8th, 2026, we released an updated version of Apigee (1-17-0-apigee-9).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and may take four or more business days to be completed across all Google Cloud zones. Your instances may not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>514384893</strong></td>
<td><strong>Security fix for Apigee.</strong> Hardened the Script policy to block server-side request forgery (SSRF) to link-local addresses.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td><strong>Security fix for Apigee infrastructure.</strong></td>
</tr>
</tbody>
</table>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>512850756</strong></td>
<td>Added observability metrics for the OpenTelemetry trace export pipeline, reporting spans exported, export latency, batch size, and dropped spans.</td>
</tr>
<tr>
<td><strong>515039499</strong></td>
<td>Fixed an issue where OpenTelemetry trace export over HTTP could fail to authenticate when sent through a forward proxy that requires basic authentication.</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>June 02, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#June_02_2026</id>
    <updated>2026-06-02T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#June_02_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On June 2nd, 2026, we released an updated version of Apigee Cassandra.</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and may take four or more business days to be completed across all Google Cloud zones. Your instances may not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Apigee Cassandra security update</strong></td>
<td><strong>Security fix for Apigee Cassandra infrastructure.</strong> <p>This addresses the following vulnerabilities:<ul><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39820">CVE-2026-39820</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42499">CVE-2026-42499</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39836">CVE-2026-39836</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33814">CVE-2026-33814</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42501">CVE-2026-42501</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33811">CVE-2026-33811</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39825">CVE-2026-39825</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39817">CVE-2026-39817</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39823">CVE-2026-39823</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39819">CVE-2026-39819</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-39826">CVE-2026-39826</a></li></ul></p></td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>May 29, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#May_29_2026</id>
    <updated>2026-05-29T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#May_29_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On May 29, 2026, we released an updated version of the Apigee UI.</p>
<h3>Feature</h3>
<p><b>Apigee EventFlow now supports the DataCapture policy</b></p>
<p>You can now use the DataCapture policy within an EventFlow to extract and
persist data from server-sent events (SSE) streams, such as token counts and
other fields from streaming LLM responses.
For more information, see
<a href="https://docs.cloud.google.com/apigee/docs/api-platform/develop/server-sent-events#datacapture-token-counts">Use the DataCapture policy to capture token counts</a>.</p>
<h3>Feature</h3>
<p><b>Manage Spaces in the Apigee UI</b></p>
<p>You can now create, view, update, and delete spaces, and manage their Identity and Access Management (IAM) policies directly in the Apigee UI.
Previously, these actions could only be performed using the Apigee API.
For more information, see
<a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/spaces/apigee-spaces-overview">Apigee Spaces overview</a>.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>May 22, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#May_22_2026</id>
    <updated>2026-05-22T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#May_22_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p><strong>Apigee Emulator</strong></p>
<h3 id="apigee_emulator_v200">Apigee Emulator v2.0.0</h3>
<p>On May 22, 2026, we released Apigee Emulator version 2.0.0.</p>
<p>Starting with this release, the Apigee Emulator is versioned and released
independently from Apigee hybrid. This enables faster delivery of security
patches and updates without waiting for hybrid release cycles. The emulator
image continues to be available at
<a href="https://console.cloud.google.com/artifacts/docker/apigee-release/us/gcr.io/hybrid%2Fapigee-emulator">Google Artifact Registry</a>.</p>
<p>To use the new version, update the emulator version in your VS Code Cloud Code
settings to <code>2.0.0</code>. See
<a href="https://docs.cloud.google.com/apigee/docs/api-platform/local-development/vscode/manage-apigee-emulator#choose_the_emulator_version">Manage the Apigee Emulator</a>
for details.</p>
<h3>Feature</h3>
<p><strong>Apigee Emulator</strong></p>
<h4 id="changed_in_this_release_2">Changed in this release</h4>
<ul>
<li>The Apigee Emulator now follows independent semantic versioning
(MAJOR.MINOR.PATCH), decoupled from Apigee hybrid versioning.</li>
<li>Updated base Cassandra image to version 4.0.19.</li>
<li>Updated Java runtime to Eclipse Temurin JRE 11.0.31.</li>
</ul>
<h3>Security</h3>
<p><strong>Apigee Emulator</strong></p>
<h4 id="security_2">Security</h4>
<p>This release addresses 78 security vulnerabilities across Cassandra base image,
Go standard library, Java dependencies, and Python packages. Key fixes include:</p>
<table>
<thead>
<tr>
<th>CVE</th>
<th>Component</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-42003">CVE-2022-42003</a></td>
<td>Jackson Databind</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-42004">CVE-2022-42004</a></td>
<td>Jackson Databind</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-38749">CVE-2022-38749</a></td>
<td>SnakeYAML</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-38750">CVE-2022-38750</a></td>
<td>SnakeYAML</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2023-2976">CVE-2023-2976</a></td>
<td>Google Guava</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2020-8908">CVE-2020-8908</a></td>
<td>Google Guava</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2024-12798">CVE-2024-12798</a></td>
<td>Logback</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-22866">CVE-2025-22866</a></td>
<td>Go stdlib</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2025-22870">CVE-2025-22870</a></td>
<td>Go stdlib</td>
</tr>
<tr>
<td><a href="https://nvd.nist.gov/vuln/detail/CVE-2022-40897">CVE-2022-40897</a></td>
<td>Python setuptools</td>
</tr>
</tbody>
</table>
<p>And 68 additional CVEs fixed through updated upstream dependencies.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>May 21, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#May_21_2026</id>
    <updated>2026-05-21T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#May_21_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On May 21st, 2026, we released an updated version of Apigee (1-17-0-apigee-8).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and may take four or more business days to be completed across all Google Cloud zones. Your instances may not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>514973778</strong></td>
<td>Fixed Model Armor response parsing to gracefully handle unknown fields, so future Model Armor field additions no longer cause policy failures.</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>May 20, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#May_20_2026</id>
    <updated>2026-05-20T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#May_20_2026"/>
    <content type="html"><![CDATA[<h3>Security</h3>
<p><strong>On May 20, 2026, we published a security bulletin for Apigee.</strong></p>
<p>A vulnerability was found in Apigee
(<a href="https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2026-2264">CVE-2026-2264</a>)
where the <code>IntegrationRegion</code>
parameter in the <code>SetIntegrationRequest</code> policy lacks validation,
allowing for Server-Side Request Forgery (SSRF) and service account token
exfiltration. The issue arises when an attacker can control a flow variable used
for <code>IntegrationRegion</code>, leading to requests being sent to an
attacker-controlled host with the service account token.</p>
<p><strong>Security bulletin published: <a href="https://docs.cloud.google.com/apigee/docs/security-bulletins/security-bulletins#gcp-2026-034">GCP-2026-034</a></strong></p>
]]>
    </content>
  </entry>

  <entry>
    <title>May 12, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#May_12_2026</id>
    <updated>2026-05-12T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#May_12_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On May 12th, 2026, we released an updated version of Apigee (1-17-0-apigee-7).</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and may take four or more business days to be completed across all Google Cloud zones. Your instances may not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Security</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>511325186, 505460952, 502250074, 491231600, 497357701, 509560467, 496969438, 495897297, 495033618, 511332617, 505183435, 500735547, 500890221</strong></td>
<td><strong>Security fix for Apigee infrastructure.</strong> <p>This addresses the following vulnerabilities: <ul> <li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42587">CVE-2026-42587</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-5588">CVE-2026-5588</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-34480">CVE-2026-34480</a></li><li><a href="https://github.com/advisories/GHSA-72hv-8253-57qq">GHSA-72hv-8253-57qq</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33870">CVE-2026-33870</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33871">CVE-2026-33871</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-35611">CVE-2026-35611</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33170">CVE-2026-33170</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33169">CVE-2026-33169</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33176">CVE-2026-33176</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33210">CVE-2026-33210</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-33186">CVE-2026-33186</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-42499">CVE-2026-42499</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-35469">CVE-2026-35469</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-32281">CVE-2026-32281</a></li><li><a href="https://nvd.nist.gov/vuln/detail/CVE-2026-27144">CVE-2026-27144</a></li></ul></p></td>
</tr>
</tbody>
</table>
<h3>Fixed</h3>
<table>
<thead>
<tr>
<th>Bug ID</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>480260846</strong></td>
<td>Improved XML processing security to prevent external entity injection.</td>
</tr>
<tr>
<td><strong>510061670, 505723451, 503723862, 503817773</strong></td>
<td>Improved security in OAuthV2 policy.</td>
</tr>
<tr>
<td><strong>505645076</strong></td>
<td>Fixed a security issue in OAuthV2 policy to prevent unauthorized token injection.</td>
</tr>
<tr>
<td><strong>503047744, 410026138, 496021751</strong></td>
<td>Improved security isolation for PythonScript policy execution.</td>
</tr>
<tr>
<td><strong>469694040</strong></td>
<td>Fixed an issue where custom security policies could intermittently fail to apply, and improved security policy resolution to ensure correct policy selection.</td>
</tr>
<tr>
<td><strong>502971220</strong></td>
<td>Fixed a concurrency issue to improve stability under high load.</td>
</tr>
<tr>
<td><strong>509692565</strong></td>
<td>Fixed content-length header handling in external processing to prevent incorrect values.</td>
</tr>
<tr>
<td><strong>282207038</strong></td>
<td>Improved performance while listing apps on scale.</td>
</tr>
<tr>
<td><strong>501102321</strong></td>
<td>Fixed recurring fee calculation in monetization to correctly apply rate plan overrides.</td>
</tr>
<tr>
<td><strong>449729840, 502604752</strong></td>
<td>Fixed streaming response handling to prevent race conditions in bidirectional flows.</td>
</tr>
<tr>
<td><strong>507167063</strong></td>
<td>Fixed preservation of client request IDs during proxy chaining.</td>
</tr>
<tr>
<td><strong>507580304</strong></td>
<td>Improved IPv4 address normalization for consistent access control evaluation.</td>
</tr>
<tr>
<td><strong>502692267</strong></td>
<td>MCP to handle /.well-known/oauth-protected-resource/mcp resource paths.</td>
</tr>
<tr>
<td><strong>430170696</strong></td>
<td>Changed the error response from 500 to 401 for expired consumer keys.</td>
</tr>
<tr>
<td><strong>480770263</strong></td>
<td>Fixed SpikeArrest policy to handle edge cases that previously caused 500 errors.</td>
</tr>
<tr>
<td><strong>500861814</strong></td>
<td>Gracefully handle connection failures involving the forward proxy, resolving an issue where port exhaustion could trigger aggressive retry storms, excessive CPU usage, and unnecessary scaling.</td>
</tr>
<tr>
<td><strong>500313309</strong></td>
<td>Fixed SSE streaming detection logic.</td>
</tr>
<tr>
<td><strong>494304819</strong></td>
<td>Hardened message processor management ports by blocking external access to internal management endpoints.</td>
</tr>
<tr>
<td><strong>469642464</strong></td>
<td>Improved input validation in AI protection policies to prevent Server-Side Request Forgery.</td>
</tr>
<tr>
<td><strong>472526232</strong></td>
<td>Improved SAML assertion validation.</td>
</tr>
<tr>
<td><strong>494590020</strong></td>
<td>Added enforcement for product association in OAuthV2 flow. Apps without valid products are now denied.</td>
</tr>
<tr>
<td><strong>479288727</strong></td>
<td>Improved performance and reduced redundant work in ingress status watcher.</td>
</tr>
<tr>
<td><strong>N/A</strong></td>
<td>Updates to infrastructure and libraries.</td>
</tr>
</tbody>
</table>
]]>
    </content>
  </entry>

  <entry>
    <title>April 29, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#April_29_2026</id>
    <updated>2026-04-29T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#April_29_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On April 29th, 2026, we began maintenance updates of Apigee instances <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">configured for maintenance windows</a>.</p>
<p>If you set a preferred window for maintenance for your instance, and your instance version is
below <strong>1-17-0-apigee-4</strong>, your instance will be updated to <strong>1-17-0-apigee-4</strong> within the
next seven to 21 days. A notification containing the expected date of upgrade will be sent within the next two business days.</p>
<aside class="note">Note: Instances that meet either of the following two criteria will <b>not</b> be updated:
<ul>
<li>Your instance has a DNS misconfiguration, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/known-issues">Known Issue 445936920</a>.</li>
<li>Your instance uses an Apigee Java Library that has been removed, as described in <a href="https://docs.cloud.google.com/apigee/docs/release/release-notes#October_16_2025">Apigee release notes dated October 16, 2025</a>.</li>
</ul></aside>
<p>For more information on participating in scheduled maintenance windows, see <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance">Maintenance overview</a> and <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/maintenance-windows">Manage Apigee instance maintenance windows</a>.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>April 09, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#April_09_2026</id>
    <updated>2026-04-09T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#April_09_2026"/>
    <content type="html"><![CDATA[<h3>Change</h3>
<p><strong>Relaxed limitation on header name for Client IP resolution</strong></p>
<p>The client IP can now be resolved from any header, not just the <code>X-Forwarded-For</code> header. The most common headers are <code>X-Forwarded-For</code> or <code>True-Client-Ip</code>.</p>
<p>For more information, see <a href="https://docs.cloud.google.com/apigee/docs/api-platform/system-administration/client-ip-resolution">Client IP resolution</a>.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>April 06, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#April_06_2026</id>
    <updated>2026-04-06T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#April_06_2026"/>
    <content type="html"><![CDATA[<h3>Fixed</h3>
<p><strong>Correction to <a href="#April_02_2026">April 2, 2026 release note: Deployment disruption for Apigee Drupal Portal via Google Cloud Marketplace</a></strong></p>
<p>For the deployment disruption announced on April 2, the announcement noted that deployment and management functionality using Google Cloud Deployment Manager would definitely be unavailable during the transition. This statement is incorrect. The functionality <em>might</em> be unavailable.</p>
<p>See the <a href="https://docs.cloud.google.com/apigee/docs/release/known-issues#495305258">Known issue</a> for more information.</p>
<h3>Change</h3>
<p>On April 6th, 2026, we released an updated version of Apigee.</p>
<p>This change introduces the new <code>apigee.coreServiceAgent</code> IAM role for
Apigee. <strong>Effective immediately, use <code>apigee.coreServiceAgent</code> instead of the
<code>apigee.serviceAgent</code> role.</strong></p>
<p>For information on the new role, see
<a href="https://docs.cloud.google.com/iam/docs/roles-permissions/apigee#apigee.coreServiceAgent"><code>apigee.coreServiceAgent</code></a>.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>April 02, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#April_02_2026</id>
    <updated>2026-04-02T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#April_02_2026"/>
    <content type="html"><![CDATA[<h3>Breaking</h3>
<p><strong>Deployment disruption for Apigee Drupal Portal via Google Cloud Marketplace</strong></p>
<p>Google Cloud Deployment Manager was deprecated as of March 31, 2026. We are currently transitioning the Apigee Drupal Portal Marketplace solution to use Infrastructure Manager. During this transition period, some deployment and management functionalities are unavailable.</p>
<p><strong>Impact:</strong></p>
<ul>
<li><strong>New Deployments:</strong> Starting April 1, 2026, attempting to deploy a new Apigee Drupal Portal instance using the "Deploy" button on the Google Cloud Marketplace will fail.</li>
<li><strong>Existing Deployments:</strong> Your underlying resources (such as VMs and Cloud SQL databases) are unaffected and will continue to run normally. However, you can no longer use Deployment Manager-based features to manage the deployment via the Marketplace UI or the <code>gcloud deployment-manager</code> tool.</li>
</ul>
<p><strong>Workaround &amp; Resolution:</strong>
Any configuration changes or management tasks must be performed directly on the individual Google Cloud resources (Compute Engine, Cloud SQL, etc.) rather than through the Marketplace UI.</p>
<p>We are actively working to release the updated Infrastructure Manager-based solution.</p>
]]>
    </content>
  </entry>

  <entry>
    <title>March 31, 2026</title>
    <id>tag:google.com,2016:apigee-x-release-notes#March_31_2026</id>
    <updated>2026-03-31T00:00:00-07:00</updated>
    <link rel="alternate" href="https://docs.cloud.google.com/apigee/docs/release/release-notes#March_31_2026"/>
    <content type="html"><![CDATA[<h3>Announcement</h3>
<p>On March 31st, 2026, we released an updated version of Apigee.</p>
<aside class="note"><strong>Note:</strong><span> Rollouts of this release began today and may take four or more business days to be completed across all Google Cloud zones. Your instances may not have the features and fixes available until the rollout is complete.</span></aside>
<h3>Feature</h3>
<p><strong>General Availability (GA) launch of Model Context Protocol (MCP) in Apigee</strong></p>
<p>With this release, Model Context Protocol (MCP) in Apigee is <a href="https://docs.cloud.google.com/products#product-launch-stages">generally available</a>, enabling you to expose your Apigee APIs as MCP tools to agentic applications.</p>
<p>Any MCP client that supports remote MCP endpoints over HTTP/S can access these tools. Because the endpoints are managed, you don't need to install or manage local MCP servers, remote MCP servers, or additional infrastructure to enable agentic applications to access your services.</p>
<p>MCP in Apigee is available for Subscription, Pay-as-you-go, and Evaluation organizations, including organizations with Data Residency and VPC Service Controls enabled.</p>
<p>For more information on using MCP in Apigee, see <a href="https://docs.cloud.google.com/apigee/docs/api-platform/apigee-mcp/apigee-mcp-overview">MCP in Apigee overview</a>.</p>
<h3>Feature</h3>
<p><strong>Enhanced OAS server URL path handling for MCP in Apigee</strong></p>
<p>With this feature enhancement, your OpenAPI specification (OAS) configurations behave exactly
 as defined in the OAS standard, automatically combining the <code>server.url</code> base path value with individual operation paths.</p>
<p>For example, a server URL of<code>https://example.com/api/v1</code> paired with a path of <code>/users</code> will now correctly route to <code>https://example.com/api/v1/users</code> without additional manual intervention.</p>
<p>If you previously prepended base paths to your OAS paths entries, remove the path segment from your <code>servers.url</code> field to prevent
duplication.  For example, change <code>https://example.com/api/v1</code> to <code>https://example.com</code>.</p>
<p>For more information, see <a href="https://docs.cloud.google.com/apigee/docs/api-platform/apigee-mcp/apigee-mcp-quickstart#create-an-openapi-3.0.x-specification-describing-your-api-operations">Create an OpenAPI 3.0 specification</a>.</p>
<h3>Change</h3>
<p><strong>Updated MCP server target endpoint for MCP Discovery Proxies</strong></p>
<p>With the GA launch of Model Context Protocol (MCP) in Apigee, the structure of the MCP server target endpoint for MCP Discover Proxies has changed to <code>ORG_NAME.mcp.apigee.internal</code>.</p>
<p>Private preview customers using the previous format (<code>mcp.apigee.internal</code>) are encouraged to update their proxies to reflect the new structure.  Existing endpoints using the old format will continue to work, but new endpoints will use the new structure.</p>
<h3>Issue</h3>
<p><strong>Known Issue 496552286: Deployment fails for MCP Discovery Proxies in regions with capacity limitations.</strong></p>
<p>For more information, see <a href="https://docs.cloud.google.com/apigee/docs/release/known-issues">Apigee known issues</a>.</p>
]]>
    </content>
  </entry>

</feed>
