Oracle Cloud

    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-cli installed and configured (oci setup config).
    • An instance.json payload 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"
    done

    Rotating 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