How to actually get an ARM instance on Oracle Cloud Free Tier
Oracle's free Ampere A1 shape (2 ARM cores, 12 GB RAM) is the best free hardware on the internet — and every new account hits 'Out of host capacity' when trying to launch one. Here's a copy-paste retry script that automates the wait until Oracle allocates you a slot.
Why this happens
Oracle's Always Free ARM Ampere A1 capacity is genuinely oversubscribed. Paid tenancies get first pick, and free-tier requests hit whatever's left. A single retry usually fails; a patient retry loop almost always succeeds.
Prerequisites
- An Oracle Cloud account (see the signup guide).
oci-cliinstalled and configured (oci setup config).- An
instance.jsonpayload describing the ARM instance you want.
The retry script
#!/usr/bin/env bash
set -u
ATTEMPT=0
while true; do
ATTEMPT=$((ATTEMPT + 1))
echo "[$(date -Is)] attempt #$ATTEMPT"
if oci compute instance launch \
--from-json file://instance.json \
--wait-for-state RUNNING 2>&1 | tee -a launch.log; then
echo "instance launched — exiting"
break
fi
# jittered 5-15 minute backoff
SLEEP=$((RANDOM % 600 + 300))
echo "sleeping $SLEEP seconds"
sleep "$SLEEP"
doneRotating across availability domains
Most regions have 3 ADs. Duplicate instance.json as ad1.json, ad2.json, ad3.json and rotate the --from-json argument each attempt — capacity is per-AD, so this multiplies your chances 3×.
Run it forever with systemd (or GitHub Actions)
Drop the script into /usr/local/bin/oci-retry.sh, add a systemd unit with Restart=always, and forget about it. Alternatively, schedule a GitHub Actions workflow_dispatch that runs the script for 5 hours per invocation — free tier gives you 2,000 minutes/month.
If it still won't launch after 48 hours
Upgrade to Pay-As-You-Go (PAYG). It costs $0 as long as you stay inside Always Free limits, but paid tenancies bypass the ARM capacity queue almost immediately. See our capacity error fix guide for the full escalation path.
Once you're in, Cheaploy takes over: it detects your app's stack, generates a production-grade Dockerfile, provisions a VCN + load balancer + SSL, and deploys — all for $0/month on the ARM instance you just fought for.
Frequently asked
How long does the retry usually take?+
Anywhere from 10 minutes to 3 days depending on region. Most users get a slot within 24 hours if the script runs continuously.
Will this get my Oracle account flagged?+
No. The script uses the official oci-cli and respects a 5-15 minute jittered backoff, which is well within Oracle's API rate limits.
Do I need to keep my laptop on?+
No — run it in a free Oracle Cloud VM.Standard.E2.1.Micro (AMD, always available), on a tiny Fly.io free VM, or as a GitHub Actions scheduled workflow.
Deploy your project for $0
No credit card. No Oracle sales call. Ship to your own cloud in under 10 minutes.
Start free