OpenKeel: the sovereign French Cloud solution of the inherent group, with a European reach Discover inherent

Reverse-spec · Services

nova — Flavors: errors

Flavors: errors — Nova — branch stable/2026.2

Branch stable/2026.2 @ 8df1922926dd — repository https://opendev.org/openstack/nova — analysed on 2026-10-28

Nova returns errors as {"<badRequest|itemNotFound|conflict|forbidden>": {"code": <status>, "message": "…"}} [inferred: Nova's fault wrapper, not read for this scope]. The exception classes are in nova/exception.py. Their own code is often 500, but each handler translates them, so the table gives what the client receives.

1. Flavor API

SituationStatusMessageReference
Body or query does not match the schema (bad id characters, ram = 0, rxtx_factor at ≥ 2.102, unknown query parameter at ≥ 2.75…)400jsonschema detailnova/api/openstack/compute/schemas/flavors.py:29-154
is_public filter not boolean-like or none (admin)400Invalid is_public filter [<v>]nova/api/openstack/compute/flavors.py:206-210
minRam / minDisk not an integer400Invalid minRam filter [<v>] / Invalid minDisk filter [<v>]nova/api/openstack/compute/flavors.py:228-241
marker is not a visible flavor id400marker [<marker>] not foundnova/api/openstack/compute/flavors.py:246-252
rxtx_factor ≤ 0 or too large (path not covered by the schema)400 [inferred: InvalidInput]'rxtx_factor' argument must be a float between 0 and 3.40282e+38nova/compute/flavors.py:104-113
Create with an existing name409Flavor with name <name> already exists.nova/objects/flavor.py:166-171, nova/api/openstack/compute/flavors.py:97-99
Create with an existing id409Flavor with ID <id> already exists.same
Flavor not found, or private and not visible404Flavor <id> could not be found.nova/api/openstack/common.py:491-495, nova/api/openstack/compute/flavors.py:185-187
Caller is not admin for create, update, delete, extra-spec writes, access management403Policy doesn't allow <rule> to be performed. [inferred: oslo.policy message]nova/policies/flavor_manage.py:26-58

2. Extra specs

SituationStatusMessageReference
Key outside ^[a-zA-Z0-9-_:. ]{1,255}$, value longer than 255400jsonschema detailnova/api/openstack/compute/schemas/flavors_extraspecs.py:20-39
Numeric value longer than 255 characters once converted400extra_specs value has more than 255 characters. [inferred: check_string_length message]nova/api/openstack/compute/flavors_extraspecs.py:45-52
≥ 2.86, value refused by the validator400Validation failed; '<v>' is not one of: <enum>. / … is not of the format '<regex>'. / … is not a valid integer value. / … is greater than the max value of '<max>'. / … is less than the min value of '<min>'. / … is not a valid boolean-like value.nova/api/validation/extra_specs/base.py:62-104
≥ 2.86, unknown key in a Nova namespace400Validation failed; extra spec '<key>' does not appear to be a valid extra spec.nova/api/validation/extra_specs/validators.py:53-63
PUT …/os-extra_specs/{key} with a body key that differs from the URL400Request body and URI mismatchnova/api/openstack/compute/flavors_extraspecs.py:98-100
Concurrent writers: the row could not be written after 10 retries409Flavor <id> extra spec cannot be updated or created after 10 retries.nova/objects/flavor.py:95-129, nova/api/openstack/compute/flavors_extraspecs.py:84-85
GET/DELETE of a key the flavor does not have404Flavor <id> has no extra specs with key <key>.nova/api/openstack/compute/flavors_extraspecs.py:121-127, nova/api/openstack/compute/flavors_extraspecs.py:139-149

3. Access list

SituationStatusMessageReference
Listing the access of a public flavor404Access list not available for public flavors.nova/api/openstack/compute/flavor_access.py:52-57
addTenantAccess on a public flavor (≥ 2.7)409Can not add access to a public flavor.nova/api/openstack/compute/flavor_access.py:81-85
Project already in the list409Flavor access already exists for flavor <id> and project <project> combination.nova/objects/flavor.py:72-81, nova/api/openstack/compute/flavor_access.py:89-90
Project not in the list (remove)404Flavor access not found for <id> / <project> combination.nova/objects/flavor.py:84-92, nova/api/openstack/compute/flavor_access.py:119-122
Project unknown to Keystone (add); ignored for remove400Project ID <id> is not a valid project. [inferred: identity.verify_project_id]nova/api/openstack/compute/flavor_access.py:77, nova/api/openstack/compute/flavor_access.py:104-111

4. Flavors when booting or resizing a server

SituationStatusMessageReference
Flavor disabled, deleted or not visible400Flavor <id> could not be found.nova/compute/api.py:1131-1132, nova/api/openstack/compute/servers.py:857-866
RAM below the image min_ram400Flavor's memory is too small for requested image.nova/compute/api.py:814-815
disk below the image size or min_disk400Flavor's disk is too small for requested image… / Flavor's disk is smaller than the minimum size specified in image metadata…nova/compute/api.py:878-885
disk = 0, image-backed, policy requires boot from volume403Only volume-backed servers are allowed for flavors with zero disk.nova/api/openstack/compute/servers.py:847-849
Image asks for CPU pinning the flavor forbids400Image property 'hw_cpu_policy' is not permitted to override CPU pinning policy set against the flavornova/virt/hardware.py:1806-1816, nova/api/openstack/compute/servers.py:61
Flavor and image set the same key differently400Flavor <f> has hw:<k> extra spec explicitly set to <v>, conflicting with image <i> which has hw_<k> explicitly set to <w>.nova/virt/hardware.py:1372-1390
Invalid extra-spec value stored before 2.86 (bad CPU policy, NUMA layout, page size…)400per exception, for example CPU policy requested from 'flavor extra specs' is invalid, given: '<v>', available: '<list>'.nova/virt/hardware.py:1790-1803, nova/api/openstack/compute/servers.py:55-93
Resize to the same flavor400When resizing, instances must change flavor!nova/compute/api.py:4378-4379, nova/api/openstack/compute/servers.py:1200-1207
Resize to a disk = 0 flavor, image-backed400Server disk was unable to be resized because: Resize to zero disk flavor is not allowed.nova/compute/api.py:4355-4361
Resize over quota403quota messagenova/api/openstack/compute/servers.py:1179-1180

Two points:

  • Values stored before 2.86 are only checked at boot. A flavor accepted by an old client can fail every boot with 400.
  • Several resource requests built from extra specs (PCI alias not configured, vPMEM label unknown) only fail at scheduling time: the server goes to ERROR with NoValidHost, without an HTTP error [inferred: scheduler path not read for this scope].

Source: reverse-spec-nova/02-flavors-errors_stable-2026.2.md. The _rewrite/ and _inventory/ files are not published on the site.