Issue in OCI Java SDK Deserialization of LifecycleState Enum during ListVcns Call
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 243
- Forks
- 171
- Avg merge
- 30m
- Merged PRs (30d)
- 4
Description
Dear Oracle Support Team,
We are encountering a critical issue while using the OCI Java SDK (version oci-java-sdk-shaded-full-3.66.0) when calling the ListVcns API.
🔍 Issue Summary
The API returns lifecycleState = "AVAILABLE" (all uppercase), but the SDK expects the enum value as Available (PascalCase). This mismatch causes a com.fasterxml.jackson.databind.exc.InvalidFormatException during deserialization of the response into the SDK model class com.oracle.bmc.core.model.Vcn.
❗ Error Stack Trace (Excerpt)
vbnet
Copy
Edit
Caused by: shaded.com.oracle.oci.javasdk.com.fasterxml.jackson.databind.exc.InvalidFormatException:
Cannot deserialize value of type com.oracle.bmc.core.model.Vcn$LifecycleState from String "AVAILABLE":
not one of the values accepted for Enum class: [Terminated, UnknownEnumValue, Available, Provisioning, Terminating, Updating]
at [Source: (InputStream); line: 1, column: 875]
(through reference chain: java.util.ArrayList[0]->com.oracle.bmc.core.model.Vcn["lifecycleState"])
🧪 Reproduction Code
java
Copy
Edit
ListVcnsRequest request = ListVcnsRequest.builder()
.compartmentId("")
.lifecycleState(Vcn.LifecycleState.Available)
.build();
ListVcnsResponse response = virtualNetworkClient.listVcns(request);
📌 Observations
The Jackson deserializer used is from the shaded OCI SDK itself:
shaded.com.oracle.oci.javasdk.com.fasterxml.jackson.databind
The API response contains "AVAILABLE" (uppercase), but the SDK expects "Available", hence deserialization fails.
Although the enum includes UnknownEnumValue, it is not triggered because Jackson fails before enum fallback logic is invoked.
This causes a client-side error with HTTP code -1 and message: "Unknown error".
✅ Expected Behavior
The SDK should either:
Allow case-insensitive enum deserialization (e.g., AVAILABLE → Available), or
Fall back to UnknownEnumValue instead of throwing an exception.
🌐 Region & Endpoint
Region: ap-hyderabad-1
Endpoint: https://iaas.ap-hyderabad-1.oraclecloud.com/20160918/vcns
📦 SDK Version
OCI Java SDK: oci-java-sdk-shaded-full-3.66.0
Kindly advise if this is a known issue or if a fix/workaround is available. If needed, we can provide the full JSON response and debug logs.
Thanks & Regards,
suriya B
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with com.oracle.bmc.core.model.Vcn.LifecycleState and the deserialization path used by the shaded OCI Java SDK, then reproduce the ListVcns call from the issue. Done means a response containing lifecycleState="AVAILABLE" no longer raises InvalidFormatException and follows the selected fallback behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100