This page applies to Apigeeand Apigee hybrid.
View Apigee Edge
documentation.
Select one or more of the following to filter this page:
This section lists known issues for Apigee components. For a list of bugs, new features, and other release information, see the release notes .
gateway.networking.k8s.io/v1
is installed in your cluster, apigee-ingressgateway-manager
may fail to upgrade.
For a workaround, follow the steps in Known issue 416634326 .
Apigee hybrid
OPEN
The use of wildcards ( *
) in Apigee proxy basepaths may conflict with other explicit basepaths, resulting in a 404
error. For example, use of the following basepaths for two proxies deployed in the same environment
may result in a 404
error when calling Proxy-2
:
Proxy-1: /a/v1/b Proxy-2: /a/*/c
In this case, calls to the explicit base path will resolve successfully, but calls to the Proxy-2
may return a 404
, if
the wildcard path is evaluated as /a/v1/c
.
hybrid 1.13.1,
hybrid 1.13.2,
hybrid 1.14.0
LogTimer usage in SecurityPolicy can cause a memory leak.
In some circumstances, Apigee hybrid's logger threads could consume all available memory. For example, frequent log entries documenting permissions errors associated with the Javacallout could cause OOM.
The Apigee Extension Processor does not support more than 100kb of data processing as part of request and response body events.
When updating a keystore or truststore without creating a new keystore or truststore, runtime updates may fail and cause the following intermittent error:
{"fault":{"faultstring":"SSL Handshake failed sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target","detail":{"errorcode":"messaging.adaptors.http.flow.SslHandshakeFailed"}}}
The error is intermittent because the keystore or truststore update may fail on one runtime pod but succeed on other pods. To avoid this issue, update the keystore or truststore by creating a new keystore or truststore. Repoint your reference to the new keystore or truststore, as described in When a cert expires .
Starting with Apigee hybrid version 1.14.0
, automatic addition of Zipkin trace headers ( x-b3-*
) has been removed.
N/A
httpProxy
without also setting envs.httpProxy
will not apply the proxy configuration to Apigee Runtime's external calls to services like Pub/Sub or other Google Cloud APIs.
If you only specify httpProxy
, you must also ensure that *.googleapis.com
is allowlisted for your Apigee Runtime pods to enable connectivity to these services.
Presence of istio.io
Custom Resource Definitions (CRDs) in an Apigee hybrid cluster may cause failure in apigee-ingressgateway-manager
pods.
During Apigee Hybrid upgrade from older versions to 1.14.2 or later, presence of existing istio.io
CRDs may cause failed readiness probes in the discovery
containers of the apigee-ingressgateway-manager
pods.
Workaround:
The istio.io
CRDs are not required by Apigee hybrid v1.14.2 or newer. There are two options to fix this issue:
- Delete the
istio.io
CRDs if you are not using Istio for any purpose other than Apigee in your cluster. - Update the
apigee-ingressgateway-manager clusterrole
to add permissions foristio.io
.
Afer each of the above options, you will need to restart your apigee-ingressgateway-manager
pods.
Delete CRDs
- List the
istio.io
CRDs in your cluster to a CSV file:kubectl get crd -o custom-columns=NAME:metadata.name | grep istio.io > istio-crd.csv
- Optional: Save the CRDs locally in case you need to recreate them:
kubectl get crd $(cat istio-crd.csv) -o yaml > istio-crd.yaml
- Delete the
istio.io
CRDs:Dry run:
kubectl delete crd $(cat istio-crd.csv) --dry-run=client
Execute:
kubectl delete crd $(cat istio-crd.csv)
Update clusterrole
- Get the current apigee-ingressgateway-manager clusterrole:
kubectl get clusterrole apigee-ingressgateway-manager-apigee -o yaml > apigee-ingressgateway-manager-apigee-clusterrole.yaml
- Copy the clusterrole to a new location:
cp apigee-ingressgateway-manager-apigee-clusterrole.yaml apigee-ingressgateway-manager-apigee-clusterrole-added-istio-permissions.yaml
- Add the following additional permissions to the end of the file:
- apiGroups: - gateway.networking.k8s.io resources: - gatewayclasses - gateways - grpcroutes - httproutes - referencegrants verbs: - get - list - watch - apiGroups: - networking.istio.io resources: - sidecars - destinationrules - gateways - virtualservices - envoyfilters - workloadentries - serviceentries - workloadgroups - proxyconfigs verbs: - get - list - watch - apiGroups: - security.istio.io resources: - peerauthentications - authorizationpolicies - requestauthentications verbs: - get - list - watch - apiGroups: - telemetry.istio.io resources: - telemetries verbs: - get - list - watch - apiGroups: - extensions.istio.io resources: - wasmplugins verbs: - get - list - watch
- Apply the role:
kubectl -n APIGEE_NAMESPACE apply -f apigee-ingressgateway-manager-apigee-clusterrole-added-istio-permissions.yaml
After you have completed the above options, you will need to restart your apigee-ingressgateway-manager
pods.
- List the
ingress-manager
pods to reinstall or recreate:kubectl get deployments -n APIGEE_NAMESPACE
Example output:
NAME READY UP-TO-DATE AVAILABLE AGE apigee-controller-manager 1/1 1 1 32d apigee-ingressgateway-manager 2/2 2 2 32d
- Restart the
ingress-manager
pods:kubectl rollout restart deployment -n APIGEE_NAMESPACE apigee-ingressgateway-manager
- After a few minutes, monitor the
apigee-ingressgateway-manager
pods:watch -n 10 kubectl -n APIGEE_NAMESPACE get pods -l app=apigee-ingressgateway-manager
Example output:
NAME READY STATUS RESTARTS AGE apigee-ingressgateway-manager-12345abcde-678wx 3/3 Running 0 10m apigee-ingressgateway-manager-12345abcde-901yz 3/3 Running 0 10m
ApigeeTelemetry
can become stuck in creating
state.
This issue has been seen on OpenShift installations.
Workaround:
Modify the apigee-operator
chart template to create the correct clusterrole access.
- Edit the
helm-charts/apigee-operator/templates/apigee-operators.yaml
template file, and locate the definition of the-apigee-manager-role-
clusterrole. It starts with:kind: ClusterRole metadata: name: apigee-manager-role -{{ include 'namespace' }} rules: ...
- Find the
- apiGroups: apiregistration.k8s.io
block, and add theapiservices/finalizers
resource to the list of resources:- apiGroups: - apiregistration.k8s.io resources: - apiservices - apiservices/finalizers verbs: - create - delete - get - patch - update
- Find the
- apiGroups: authorization.k8s.io
block, and add the- apiGroups: apigee.cloud.google.com
block after the end of the block with the following text:- apiGroups: - apigee.cloud.google.com resources: - apigeetelemetries/finalizers verbs: - get - patch - update
For example:
- apiGroups: - authorization.k8s.io resources: - subjectaccessreviews verbs: - create - get - list - apiGroups: - apigee.cloud.google.com resources: - apigeetelemetries/finalizers verbs: - get - patch - update
- Apply the changes to the
apigee-operator
chart:Dry run:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE \ --dry-run=server
upgrade the chart:
helm upgrade operator apigee-operator/ \ --install \ --namespace APIGEE_NAMESPACE \ --atomic \ -f OVERRIDES_FILE \
APIproducts are limited to 50 paths. If you add additional paths,
an error message is displayed: Operation group limit of 51 exceeded in Operation Config
Workaround: Use wildcard patterns to combine resource paths and operations as described in Configuring resource paths .
Workaround: Create multiple API Products. This workaround has been verified and is viable for those who add a lot of API Proxies to an API Product. The App that is associated with your API Products would need to be updated to include the new one, but credentials and client-side request details have been proven to not need changing.
Error using Custom Reports and Stats APIs when selecting by fee type for installations using Monetization.
Workaround: Fetch all fee types on the client side before filtering.
Apigee hybrid
Scaling of Istio ingress pods can cause a 503
error.
Scaling of the Istio ingress pods can occasionally cause a 503
error. If a 503
error occurs, logs for the load balancer display the following message: statusDetails:
backend_connection_closed_before_data_sent_to_client
.
Workaround : Manually scale the Istio ingress pods.
hybrid 1.14.1
hybrid 1.14.x
GCP
or HYBRID
Cloud Providers backups taken from a multi-region setup. This issue does not affect CSI
restore.
Backups taken from the multi-region setup using GCP
and HYBRID
Cloud Providers contain information about all the Hybrid regions that existed when the
snapshot was taken. And, since those regions do not exist anymore, the restore job will
conflict with the current state of Cassandra and fail with the following error: Unrecognized strategy option passed to NetworkTopologyStrategy
.
hybrid 1.12.4
hybrid 1.13.3
hybrid 1.14.1
The Nimbus JOSE + JWT
library may cause
a java.lang.ClassCircularityError
when using a JavaCallout policy .
If you have a Apigee hybrid-enabled organization with a JavaCallout policy that uses the Nimbus JOSE + JWT library, do not upgrade to hybrid 1.12.4, hybrid 1.13.3, hybrid 1.14.1.
hybrid 1.14.1
ESS and non-ESS Multi-region Cassandra credential rotation will fail in every region except the first.
Runtime traffic is not affected.
Follow the provided workaround to resolve this issue.
hybrid 1.14.x
GCP
or HYBRID
Cloud Providers
will cause the pods to go into the CrashLoopBackoff state. This issue does not affect CSI
restore.
Cassandra pods will be restarted after applying Cassandra overrides changes, such
when re-enabling backup, which will trigger this issue. The logs of a Cassandra pod
in the CrashLoopBackoff state will show the following error: Cannot change the number of tokens from 512 to 256
.
Follow the provided workaround to resolve this issue.
hybrid 1.12.x
In some rare cases, the Apigee backup job doesn't clean up the Cassandra intermediate
snapshots it creates while taking backups using HYBRID
or GCP
Cloud Providers. This only happens if an underlying issue prevents the backup process
from successfully connecting to the remote server or Cloud Storage. If the connection
issue persists, those leftover Cassandra snapshots can accumulate over time, utilizing
storage on Cassandra's disks. If you're affected, please fix the underlying connection issue and then follow the
steps provided in the Cassandra troubleshooting guide
to clear Cassandra snapshots manually.
When a KeyValueMapOperations policy is used with apiproxy
scope, and the policy's <Put>
operation is
called in a shared flow via a flow hook, the KVM entry is created under the shared flow
name. It is expected to be created under the API proxy name.
384937220
When there are multiple virtual hosts, the Helm release creation may fail due to conflicting ApigeeRoute
names. The workaround is to run the following commands for every virtual host when creating:
kubectl annotate ar apigee-ingressgateway-internal-chaining- PROJECT_ID_SUFFIX
-n APIGEE_NAMESPACE
meta.helm.sh/release-name= NEW_ENV_GROUP_NAME
--overwrite kubectl annotate cert apigee-ingressgateway-internal-chaining- PROJECT_ID_SUFFIX
-n APIGEE_NAMESPACE
meta.helm.sh/release-name= NEW_ENV_GROUP_NAME
--overwrite
where:
-
PROJECT_ID_SUFFIX
is a unique suffix for internal chaining for your project in Kubernetes. You can find this suffix with the following command:kubectl get svc -n apigee -l app=apigee-ingressgateway | grep internal-chaining
Your output will look something like:
kubectl get svc -n apigee -l app=apigee-ingressgateway | grep internal-chaining
apigee-ingressgateway-internal-chaining- my-project--1234567 ClusterIP 34.118.226.140 <none> 15021/TCP,443/TCP 5d6hIn the example output,
my-project--1234567
is thePROJECT_ID_SUFFIX
. -
APIGEE_NAMESPACE
is your Apigee namespace. -
NEW_ENV_GROUP_NAME
is the name the additional environment group. Update this value for each virtual host.
N/A
If a user provides an invalid service account to the UpdateControlPlaneAccess api, the operation goes on a retry loop effectively locking the organization from invoking the API until the operation times out.
When using the GCP
Cloud Provider, the Apigee backup job is unable to
upload to Cloud Storage buckets with retention policies. Backup files may be left in the
Cloud Storage bucket with 0 byte file size.
Workaround: Disable retention policies on the Cloud Storage bucket.
341099433
apigee-logger
component does not support Workload Identity Federation
.
apigee-logger
utilizes Google IAM service accounts for shipping logs to Cloud Logging. This is due to FluentBit's lack of support for Workload Identity Federation, which prevents the apigee-logger
from utilizing this feature.
N/A
N/A
268104619
Apigee hybrid
364872027
Apigee hybrid
For Apigee and Apigee hybrid versions 1.13 and higher, any deviations in the required PEM format of keys
used in Apigee JWS or JWT policies
may result in a parsing error. For example, placing
any character other an a newline ( /n
) immediately before the "-----END"
line (post-encapsulation boundary) is not allowed and will result in an error.
To prevent this error, make sure that no characters other than a newline, such as trailing spaces or slashes, immediately precede the post-encapsulation boundary.
For more information about the encoding used for public or private keys, see IETF RFC 7468 .
310191899
Apigee hybrid
The following endpoints may experience timeouts when used with a high volume of queries per second (QPS):
- organizations.environments.apis.revisions.
deployments.deploy - organizations.environments.apis.revisions.
deployments.undeploy - organizations.environments.sharedflows.revisions.
deployments.deploy - organizations.environments.sharedflows.revisions.
deployments.undeploy
To reduce the likelihood of timeouts, we recommend setting a target of 1 QPS when using these endpoints or checking the status of a deployment before attempting another deployment.
329304975
Apigee is enforcing a temporary limit of 1000 basepaths per environment to avoid potential failures when deploying API proxy revisions.
While this limit is in place, you can deploy up to 1000 API proxy revisions (each containing a single basepath) per environment. If your API proxies or revisions contain more than one basepath, the total number of basepaths per environment must not exceed 1000.
333791378
For the steps required to install a patch for the workaround, see Troubleshooting .
310384001
<Enforce>true</Enforce>
in the target <SSLInfo>
block for default validation of TLS target endpoint
certificates.
289583112
If the OASValidation policy specifies an <OASResource> with security requirements set at a global level, the security requirements are not enforced.
Workaround
: To ensure enforcement, all security requirements must be set at the operation
level
in the OpenAPI specification passed in the <OASResource>
element of the OASValidation policy.
205666368
hybrid 1.10.2
hybrid 1.10.3
Hybrid 1.10.3-hotfix.1
See About setting TLS options in a target endpoint or target server .
295929616
Installing or upgrading to Apigee hybrid 1.10.0 through 1.10.2 could fail on OSE due to out-of-memory issues. Fixed in Apigee hybrid version 1.10.3.
292118812
apigee-udca
may not honor the http proxy settings.
If the firewall forces all traffic through a forward-proxy, apigee-udca
may go into a crash-loop backoff state.
292558790
hybrid 1.8.0 and later
Unable to parse JSON
error.
- The OASValidation Policy fails when the JSON content does not match
the anticipated pattern. For example, if a header is expecting a value
in the format
< text >@< text >
and is populated with text missing the@
symbol, the policy will fail with anUnable to parse JSON
error. - If the OASValidation policy specifies an <OASResource> containing a
path
parameter that utilizes a$ref
schema, the policy will fail with anUnable to parse JSON - Unrecognized token
error.Workaround : Do not use
$ref
in thepath
parameters of the OpenAPI spec specified in the <OASResource> element.
297012500
hybrid 1.8.0 and later
- Apigee deployment will fail for OAS Validation policy when using circular references for OpenAPI 3.0.0 specification as it gets into an infinite loop.
Workaround : Use an OpenAPI specification yaml without circular references.
289254725
Apigee 1-10-0-apigee-3
hybrid 1.8.8
hybrid 1.9.3
FIXED in hybrid
Proxy deployments that include the OASValidation policy may fail if:
- The OpenAPI specification used for validation in the OASValidation policy is in YAML format, and
- The YAML-formatted OpenAPI specification contains a floating number. For example:
schema : type : number example : 2.345
284500460
Apigee 1-10-0-apigee-1
To avoid increasing latency in responses to the client, the Message Logging policy should be attached to the PostClientFlow . For more information on using policies in PostClientFlows, see Controlling API proxies with flows .
282997216
hybrid 1.9.0 and later
Use only alphanumeric characters for the Cassandra Jolokia password. Using special characters (including but not limited to "!", "@", "#", "$", "%", "^", "&", & "*") can cause Cassandra startup to fail.
270371160
Apigee Ingress gateway only supports TLS1.2+, and not earlier versions of TLS.
269139342
apigeectl getOrg
does not follow HTTP_PROXY
settings in overrides.yaml
Apigee organization validation does not follow HTTP Forward proxy
rules set in overrides.yaml
. Set validateOrg:
false
to skip this validation.
266452840
hybrid 1.7.0 and later
hybrid 1.8.0 and later
hybrid 1.9.0 and later
In certain circumstances, web sockets are not working for
Apigee X and Apigee Hybrid when using Anthos Service Mesh 1.15.3-asm.6
.
242213234
This error might be returned when attempting to load API products: "Products were not loaded successfully. Error: no connections available from the Apigee connect agent(s)."
The problem occurs
after enabling VPC service control in the Google Cloud project and adding iamcredentials.googleapis.com
as one of the
restricted services in the service perimeter.
Workaround: Manually create an egress rule, such as the following:
-egressTo: operations: -serviceName: "iamcredentials.googleapis.com" methodSelectors: -method: resources: -projects/608305225983 egressFrom: identityType: ANY_IDENTITY
247540503
hybrid 1.8.0 and later
In certain circumstances at very high throughput a race condition with encryption key lookup can cause KVM lookup failures.
258699204
If you see problems with the apigee-telemetry-app or
apigee-telemetry-proxy pods not running, change the metrics
resources requests and resources limits
properties to match the following defaults in Configuration property reference: metrics
.
Configuration property | Default value |
---|---|
metrics.aggregator.resources.requests.memory
: |
512Mi
|
metrics.aggregator.resources.limits.memory
: |
3Gi
|
metrics.app.resources.requests.memory
: |
512Mi
|
metrics.app.resources.limits.memory
: |
1Gi
|
metrics.appStackdriverExporter.resources.requests.memory
: |
512Mi
|
metrics.appStackdriverExporter.resources.limits.memory
: |
1Gi
|
metrics.proxy.resources.requests.memory
: |
512Mi
|
metrics.proxy.resources.limits.memory
: |
1Gi
|
metrics.proxyStackdriverExporter.resources.requests.memory
: |
512Mi
|
metrics.proxyStackdriverExporter.resources.limits.memory
: |
1Gi
|
Apply the changes with apigeectl apply
with
the ‑‑telemetry
flag:
apigeectl apply --telemetry -f overrides.yaml
260324159
API proxies and shared flows could take around 20 to 30 minutes to deploy in the runtime plane in certain circumstances due to a 'socket closed' error in synchronizer.
214447386
Error
.
This is expected to occur every minute and does not affect your billing cost.
260772383
If installing hybrid on AKS, you may see this error:
envoy config listener '0.0.0.0_443'
failed to bind or apply socket options: cannot bind
'0.0.0.0:443': Permission denied
Workaround:
Add the following svcAnnotations
stanza to the overrides file:
ingressGateways:
- name: INGRESS_NAME
...
svcAnnotations:
service.beta.kubernetes.io/azure-load-balancer-internal: "true"
See Configure the hybrid runtime . See also Use an internal load balancer with AKS .
241786534
When using Org-scoped UDCA, MART is sometimes unable to connect
to FluentD. Org-scoped UDCA is the default in Apigee hybrid
version 1.8. See orgScopedUDCA
in the Configuration property
reference.
apigee-logger
not working on Anthos BareMetal with
CentOS or RHEL.
After migration of apigee-logger
from fluend
to fluent-bit
in Apigee hybrid
version 1.6.6, the logger stopped working on Anthos BareMetal
with CentOS or RHEL.
Current apigee-logger
configurations, including
liveness probes, are incompatible with the Kubernetes runtime,
resulting in logs not being shipped to Cloud Logging as expected.
This problem also causes the apigee-logger
pods to
crash regularly. This issue affects Apigee hybrid installations
on AKS, Anthos Bare Metal, and other platforms. Note that in
some cases this issue results in excessive log volume.
PUT /organizations/{org_name}/developers/{developer_email}
API
.
In the Apigee UI, you cannot view, confirm deployment status, or manage your archive deployments, as described Deploying an API proxy , or use the Debug UI as described in Using Debug . As a workaround, you can use gcloud or the API to List all archive deployments in an environment and use the Debug API .
Rolling back an archive deployment is not currently supported. To remove a version of an archive deployment you need to either redeploy a previous version of an archive or delete the environment .
421402073
Google authentication in ServiceCallout and ExternalCallout policies, as described in Using Google Authentication , is not supported in Apigee in VS Code.
hybrid 1.15.0
x-b3 headers not available when DistributedTrace is disabled
In the Apigee 1-15-0-apigee-5 and hybrid 1.15.0 releases, Apigee stopped sending x-b3
headers to target endpoints when Distributed Trace is disabled. However, some Apigee installations were relying on x-b3
headers being sent regardless of whether Distributed Trace was enabled or disabled. Therefore this change has been reverted starting in Apigee 1-15-0-apigee-7.
Invalid HTTP Header error: The Istio ingress switches all incoming target responses to the HTTP2 protocol. Because the hybrid message processor only supports HTTP1, you may see the following error when an API proxy is called:
http2 error: Invalid HTTP header field was received: frame type: 1, stream: 1,
name: [:authority], value: [domain_name]
If you see this error, you can take either of the following actions to correct the problem:
- Modify the target service to omit the Host header in the response.
- Remove the Host header using the AssignMessage policy in your API proxy if necessary.
420985360
- Apigee supports OpenAPI Specification 3.0 when you publish your APIs
using SmartDocs on your portal, though
a subset of features are not yet supported. For example,
allOf
properties for combining and extending schemas.If an unsupported feature is referenced in your OpenAPI Specification, in some cases the tools will ignore the feature but still render the API reference documentation. In other cases, an unsupported feature will cause errors that prevent the successful rendering of the API reference documentation. In either case, you will need to modify your OpenAPI Specification to avoid use of the unsupported feature until it is supported in a future release.
- When using Try this API in the portal, the
Accept
header is set toapplication/json
regardless of the value set forconsumes
in the OpenAPI Specification.
- Simultaneous portal updates (such as page, theme, CSS, or script edits) by multiple users is not supported at this time.
- If you delete an API reference documentation page from the portal, there is no way to recreate it; you'll need to delete and re-add the API product, and regenerate the API reference documentation.
- When customizing your portal theme , it may take up to 5 minutes for changes to fully apply.
Search will be integrated into the integrated portal in a future release.
Single logout (SLO) with the SAML identity provider is not supported for custom domains. To enable a custom domain with a SAML identity provider, leave the Sign-out URL field blank when you configure SAML settings .
*.googleapis.com
.
-
API Proxy request and response counts (for proxy and targets) show abnormal spikes
Here is a sample showing such a spike:
- Due to a bug, the system registers the count incorrectly for a brief period and the count is corrected. This happens where there is a reduction in API traffic (which results in a scale down of API gateways).
- To distinguish actual spikes in requests vs. this issue, please consult the API Analytics page (specifically the Proxy Performance and Target Performance pages)
Affected Metrics:
-
apigee.googleapis.com/proxyv2/request_count
-
apigee.googleapis.com/proxyv2/response_count
-
apigee.googleapis.com/targetv2/request_count
-
apigee.googleapis.com/targetv2/response_count
New metrics
You can use the new metrics to avoid this issue.
apigee.googleapis.com/target/latencies
|
Distribution of latencies, which are calculated from the time the request was sent to the Apigee target to the time the response was received by the Apigee proxy. Time does not include the Apigee API proxy overhead. |
---|
For Apigee hybrid, see: Metrics collection overview and View metrics .
apigee-stackdriver-logging-agent
currently runs
as root.
Workaround: Disable the logging agent on hybrid.
<Response>
tag), a race condition can occur if
there is another policy that occurs after it.
Workaround: To maintain the fire and forget behavior:
- Add
<Response>calloutResponse</Response>
to the ServiceCallout. - Set
continueOnError
totrue
.
502
errors will occur.
Workaround: Avoid using more than one SpikeArrest policy in the proxy to prevent the issue.
Apigee
For a particular key, if there is continuous traffic, the key may not be rate limited at the updated rate. If there is five minutes of no traffic for a particular key, the rate will be reflected.
Workaround: Redeploy the proxy with a new reference variable if the rate has to take effect immediately. Or use two conditional spike arrests with different flow variables to adjust the rate.
API Monitoring of Configurable API Proxies may display a fault code of '(not set)' for responses with a non-2xx status from the target.
io.timeout.millis
is not honored when
used with multiple dynamic targets.
If a proxy sets two or more io.timeout.millis
values in two or more flows using the same target host, only
one io.timeout.millis
value is honored.
During upgrade to Apigee hybrid 1.8.x, after running apigeectl init
and confirming that check-ready
succeeded, you may notice, if you
view the pods, that the Cassandra schema validation job is
in an error state. This is a harmless condition
, and
you can safely move to the next step in the upgrade procedure.
Deploying proxies with the same path to multiple environments that are attached to
the same instance and environment group is not allowed and should return a warning message
about a base path conflict. Instead, no error is shown and the deployments appear to
succeed.
Workaround:
When deploying and after deployment, verify that there are not
base path conflicts with deployed proxies and correct as needed.
When attempting to save a previously deployed proxy, the deployment might fail with
an error stating that the revision is immutable.
Workaround:
Click the dropdown arrow next to the Save
button and select Save as new revision
. Then reattempt the deployment.
When a call is made to a gRPC Target Server, the only trailer that's returned is the "grpc-status" trailer. All other trailers are removed from the response.
As a result API hub won't extract operations, definitions, and other metadata correctly.
Apigee hybrid organizations are not impacted by this problem, as they use the Classic UI to view the app details.
Partial workaround: A list of all apps is available using the APIs. See organizations.apps.list .
Apigee hybrid
For hybrid organizations with monetization, the recurring (RECURRING_FEE), setup fee (SETUP_FEE) and top-up fee (TOPUP_FEE) data is not captured or billed for post-paid billing. For pre-paid billing, the wallet deduction occurs for these fees but is not reported.
An infinite recursion occurs within the OASValidation policy when a backend response
contains a discriminator type that is the same as the parent schema. This problem can
lead to a StackOverflowError
.