Description
When launching a VM.Standard.A1.Flex instance with Always-Free quota, the OCI API silently rounds the requested memory to conform to an undocumented 6 GB/OCPU minimum. The CLI returns success with no warning that the provisioned shape differs from the requested shape.
Steps to Reproduce
Observed on us-ashburn-1 (PAYG account, Always-Free A1 allotment):
| Requested |
Provisioned |
Behaviour |
--shape-config '{"ocpus":2,"memory-in-gbs":8}' |
2 OCPU / 12 GB |
Rounded UP 50% (8 → 12) |
--shape-config '{"ocpus":2,"memory-in-gbs":16}' |
2 OCPU / 12 GB |
Rounded DOWN 25% (16 → 12) |
--shape-config '{"ocpus":1,"memory-in-gbs":6}' |
1 OCPU / 6 GB |
Unchanged |
--shape-config '{"ocpus":3,"memory-in-gbs":18}' |
3 OCPU / 18 GB |
Unchanged |
Expected Behaviour
When the provisioned shape differs from the requested shape, the CLI (or API response) should include a warning, e.g.:
WARN: requested 8 GB but provisioned 12 GB due to Always-Free A1.Flex minimum of 6 GB/OCPU.
At minimum, the Always Free page and the A1.Flex docs should document the 6 GB/OCPU floor.
Actual Behaviour
- Silent rounding: no warning, no error, no log line in CLI output.
- Asymmetric rounding: memory below 6 GB/OCPU rounds UP; memory above the feasible maximum for the OCPU count rounds DOWN. Both directions are silent.
- Not documented: the 6 GB/OCPU rule does not appear in any official docs page.
Impact
Our first production deploy would have shipped on 12 GB instead of the requested 16 GB, silently shrinking the MySQL buffer pool. We only caught it by manually re-reading the OCI Console after launch, which cost an unnecessary terminate-and-relaunch cycle.
Suggested Fix
- Include a warning in the API response (and CLI output) when the provisioned shape-config differs from the requested shape-config.
- Document the 6 GB/OCPU minimum in the A1.Flex shape documentation and the Always Free limits page.
- Better yet — error out and require an explicit override flag (similar to how AWS handles shape incompatibilities).
Description
When launching a
VM.Standard.A1.Flexinstance with Always-Free quota, the OCI API silently rounds the requested memory to conform to an undocumented 6 GB/OCPU minimum. The CLI returns success with no warning that the provisioned shape differs from the requested shape.Steps to Reproduce
Observed on us-ashburn-1 (PAYG account, Always-Free A1 allotment):
--shape-config '{"ocpus":2,"memory-in-gbs":8}'--shape-config '{"ocpus":2,"memory-in-gbs":16}'--shape-config '{"ocpus":1,"memory-in-gbs":6}'--shape-config '{"ocpus":3,"memory-in-gbs":18}'Expected Behaviour
When the provisioned shape differs from the requested shape, the CLI (or API response) should include a warning, e.g.:
At minimum, the Always Free page and the A1.Flex docs should document the 6 GB/OCPU floor.
Actual Behaviour
Impact
Our first production deploy would have shipped on 12 GB instead of the requested 16 GB, silently shrinking the MySQL buffer pool. We only caught it by manually re-reading the OCI Console after launch, which cost an unnecessary terminate-and-relaunch cycle.
Suggested Fix