Skip to content
DevOps AI ToolKit
Newsletter
All guides
AI for OpenStack By James Joyner IV · · 9 min read Last reviewed Jul 2026

OpenStack Error: nova-compute 'Error updating resources' — fix resource tracker claim failures

Quick answer

Fix nova-compute resource tracker exceptions and 'Error updating resources for node': diagnose Placement sync, stale allocations, and ComputeResourcesUnavailable claim failures on the compute host.

Part of the OpenStack Nova Compute & Scheduling Errors hub
  • #openstack
  • #nova
  • #troubleshooting
  • #errors
Free toolkit

Stuck on this OpenStack error? Get the free incident triage checklist

A one-page PDF — the exact steps to isolate, fix, and verify a production error like this one. No spam, unsubscribe anytime.

Exact Error Message

# /var/log/nova/nova-compute.log
ERROR nova.compute.manager [-] Error updating resources for node compute-03.
ERROR nova.compute.manager Traceback (most recent call last):
ERROR nova.compute.manager   File ".../nova/compute/resource_tracker.py", line 941,
    in _update_available_resource
ERROR nova.compute.manager   File ".../nova/compute/resource_tracker.py", line 1385,
    in _update
ERROR nova.compute.manager keystoneauth1.exceptions.connection.ConnectFailure:
    Unable to establish connection to https://controller:8778/allocations
WARNING nova.compute.resource_tracker [-] Instance abc-123 has allocations
    against this compute host but is not found in the list of instances.

You may also see ResourceProviderUpdateConflict, ComputeResourcesUnavailable: Insufficient compute resources, or Failed to compute_task_build_instances: No valid host was found on the scheduler side as a downstream effect.

What It Means

The Nova resource tracker runs inside nova-compute on every hypervisor. On each periodic run it inventories the host (CPU, RAM, disk, PCI, NUMA), reconciles running instances against claimed allocations, and reports the result to the Placement service. Error updating resources for node means that reconciliation raised an exception, so the compute node’s view of free capacity is now stale.

The consequence is real: if the tracker cannot update Placement, the scheduler works from wrong numbers. That produces both false No valid host was found rejections (host looks full when it is not) and orphaned allocations that pin capacity to instances that no longer exist.

Common Causes

  • nova-compute cannot reach the Placement API (network, wrong [placement] endpoint, expired service token).
  • Orphaned or leaked allocations in Placement for instances that were deleted out-of-band.
  • A ResourceProviderUpdateConflict from concurrent generation updates (compute and a migration racing).
  • The compute node’s reported inventory shrank below existing allocations (e.g. cpu_allocation_ratio changed).
  • A corrupt or half-deleted instance leaving the tracker unable to reconcile.
  • Clock skew or an invalid Keystone service user for the [placement] section.

Diagnostic Commands

Confirm the compute service and its tracker state:

openstack compute service list --service nova-compute
sudo tail -f /var/log/nova/nova-compute.log

Check the resource provider and its reported inventory in Placement:

openstack resource provider list --name compute-03
openstack resource provider inventory list <provider-uuid>
openstack resource provider usage show <provider-uuid>

Look for allocations that reference instances Nova no longer has:

openstack resource provider allocation list <provider-uuid>
openstack server list --all-projects --host compute-03

Validate connectivity from the compute node to Placement:

sudo -u nova openstack --os-cloud placement endpoint list | grep 8778

Step-by-Step Resolution

  1. Fix connectivity first. Verify the [placement] credentials and endpoint in nova.conf, then restart the agent:
sudo crudini --get /etc/nova/nova.conf placement auth_url
sudo systemctl restart nova-compute
  1. Watch the next tracker cycle complete cleanly:
sudo grep -E 'Final resource view|Error updating resources' /var/log/nova/nova-compute.log | tail
INFO nova.compute.resource_tracker [-] Final resource view: name=compute-03
    phys_ram=257000MB used_ram=64000MB phys_disk=3600GB used_disk=420GB
  1. If the log reports allocations for missing instances, audit them before deleting. Confirm the instance is truly gone:
openstack server show abc-123   # "No server with a name or ID of 'abc-123'"
  1. Heal the orphaned allocations with the Nova audit tool (dry run first):
nova-manage placement audit --verbose
nova-manage placement audit --delete --resource_provider <provider-uuid>
  1. If inventory shrank below usage after a ratio change, restore a valid cpu_allocation_ratio/ram_allocation_ratio so allocations fit:
sudo crudini --set /etc/nova/nova.conf DEFAULT cpu_allocation_ratio 4.0
sudo systemctl restart nova-compute
  1. Confirm the scheduler now sees correct capacity:
openstack hypervisor show compute-03 -c vcpus -c vcpus_used -c free_ram_mb

Prevention

  • Monitor nova-compute.log for Error updating resources and alert on repeated occurrences.
  • Always delete instances through the API; deleting domains directly in libvirt leaves orphaned allocations.
  • Run nova-manage placement audit periodically to catch leaked allocations early.
  • Keep Placement highly available and the [placement] service user valid so the tracker never loses its endpoint.
  • Change allocation ratios deliberately and confirm existing usage still fits before applying.
  • No valid host was found — the scheduler’s downstream symptom of stale/wrong capacity.
  • ComputeResourcesUnavailable: Insufficient compute resources — a claim failed at build time.
  • ResourceProviderUpdateConflict — a Placement generation conflict, often transient and self-healing.
  • Instance ... is not found in the list of instances — an orphaned allocation, the trigger for a placement audit.

Frequently Asked Questions

Is it safe to delete orphaned allocations with nova-manage placement audit --delete? Yes, once you have confirmed the instance no longer exists via openstack server show. The audit only removes allocations that have no matching instance, freeing the capacity they falsely held.

Why does the scheduler say a host is full when it clearly has room? Stale allocations in Placement, usually from instances deleted out-of-band, make the resource provider look fully committed. Auditing and removing them restores the real free capacity.

Does restarting nova-compute clear the error? A restart forces a fresh tracker cycle and fixes transient connectivity issues, but it will not remove orphaned allocations — you still need the placement audit for those.

Can I prevent this on busy clusters? Keep Placement available, avoid out-of-band deletes, and script periodic audits — the automation patterns in the prompt library help. For more compute fixes, see the OpenStack guides.

Free download · 368-page PDF

Fixed it? Get 500 OpenStack & DevOps AI prompts — free

500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.

  • 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
  • Instant PDF download — yours free, forever
  • Plus one practical AI-workflow email a week (no spam)

Single opt-in · unsubscribe anytime · no spam.

Did this fix your issue?

Free download · 368-page PDF

Get 500 Battle-Tested DevOps AI Prompts — Free

500 battle-tested, copy-paste AI prompts engineered by a senior systems engineer — every one with fill-in placeholders and safety/back-out notes. Drop your email and it's yours.

  • 500 prompts: Linux · Kubernetes · Terraform · OpenStack · GitLab · Docker · Monitoring · Incident Response
  • Instant PDF download — yours free, forever
  • Plus one practical AI-workflow email a week (no spam)

Single opt-in · unsubscribe anytime · no spam.