Always-Free VM.Standard.A1.Flex silently rounds memory — no warning when provisioned shape differs from request
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 669
- Forks
- 236
- Avg merge
- 1m
- Merged PRs (30d)
- 4
Description
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).
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 by reproducing the VM.Standard.A1.Flex cases with --shape-config in us-ashburn-1 and compare the requested values with the provisioned shape returned by OCI. Trace how that response is surfaced in the CLI, then review the Always Free and A1.Flex documentation links. Done means the shape difference is no longer silent, or the documented behavior and supported resolution are clearly established.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, cloud, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100