G’day Sigurd,

 

Based on the logs, it looks like the flavor didn’t exist, and it’s been created – but it’s creation was not included in your logs, so I was not able to determine whether your flavor was created properly, with correctly formatted extra_specs.

 

Possibly because you have more than one log location, and the activity was logged on a different controller, or possibly because you truncated these logs for brevity, but it does not let us paint a complete picture.

 

We can see in the logs, that first, when trying to invoke your flavor, it does not exist:

 

RESP BODY: {"itemNotFound": {"code": 404, "message": "Flavor gigantic-h200-35c could not be found."}}

 

 

Later, a query against the flavor’s ID shows that it does exist; but we aren’t supplied with the information about the properties/specs of the flavor. It’s possible that the flavor has no extra_specs at this point.

...

 

REQ: curl -g -i -X GET http://kaun.uia.no:8774/v2.1/flavors/55 -H "Accept: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -H "X-OpenStack-Nova-API-Version: 2.1"

http://kaun.uia.no:8774 "GET /v2.1/flavors/55 HTTP/1.1" 200 374

RESP: [200] content-length: 374 content-type: application/json date: Fri, 07 Nov 2025 14:20:21 GMT openstack-api-version: compute 2.1 vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version x-compute-request-id: req-b514dbce-a7b8-4050-a382-0d71c890754c x-openstack-nova-api-version: 2.1 x-openstack-request-id: req-b514dbce-a7b8-4050-a382-0d71c890754c

RESP BODY: {"flavor": {"id": "55", "name": "gigantic-h200-35c", "ram": 65525, "disk": 512, "swap": "", "OS-FLV-EXT-DATA:ephemeral": 0, "OS-FLV-DISABLED:disabled": false, "vcpus": 32, "os-flavor-access:is_public": true, "rxtx_factor": 1.0, "links": [{"rel": "self", "href": "http://kaun.uia.no:8774/v2.1/flavors/55"}, {"rel": "bookmark", "href": "http://kaun.uia.no:8774/flavors/55"}]}}

GET call to compute for http://kaun.uia.no:8774/v2.1/flavors/55 used request id req-b514dbce-a7b8-4050-a382-0d71c890754c

 

 

Finally, we see the error:

...

 

boot_args: ['sigh20035c', None, <Flavor: gigantic-h200-35c>]

boot_kwargs: {'meta': None, 'files': {}, 'reservation_id': None, 'min_count': 1, 'max_count': 1, 'security_groups': [], 'userdata': None, 'key_name': 'sigurdkb', 'availability_zone': None, 'admin_pass': None, 'block_device_mapping_v2': [{'uuid': 'b154c30b-b766-445b-a310-2a511c9bc114', 'boot_index': 0, 'source_type': 'image', 'destination_type': 'volume', 'volume_size': 1024}], 'nics': [{'net-id': '0cfa71fd-d199-4a77-b6d2-a58ab80e7248', 'port-id': '', 'v4-fixed-ip': '', 'v6-fixed-ip': ''}], 'scheduler_hints': {}, 'config_drive': None}

REQ: curl -g -i -X POST http://kaun.uia.no:8774/v2.1/servers -H "Accept: application/json" -H "Content-Type: application/json" -H "User-Agent: python-novaclient" -H "X-Auth-Token: {SHA256}xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" -H "X-OpenStack-Nova-API-Version: 2.1" -d '{"server": {"name": "sigh20035c", "imageRef": "", "flavorRef": "55", "key_name": "sigurdkb", "min_count": 1, "max_count": 1, "block_device_mapping_v2": [{"uuid": "b154c30b-b766-445b-a310-2a511c9bc114", "boot_index": 0, "source_type": "image", "destination_type": "volume", "volume_size": 1024}], "networks": [{"uuid": "0cfa71fd-d199-4a77-b6d2-a58ab80e7248"}]}}'

http://kaun.uia.no:8774 "POST /v2.1/servers HTTP/1.1" 400 151

RESP: [400] content-length: 151 content-type: application/json; charset=UTF-8 date: Fri, 07 Nov 2025 14:20:22 GMT openstack-api-version: compute 2.1 vary: OpenStack-API-Version,X-OpenStack-Nova-API-Version x-compute-request-id: req-66fb38d8-8f49-4073-99a2-fa4677d9b48e x-openstack-nova-api-version: 2.1 x-openstack-request-id: req-66fb38d8-8f49-4073-99a2-fa4677d9b48e

RESP BODY: {"badRequest": {"code": 400, "message": "Invalid PCI alias definition: Expecting property name enclosed in double quotes: line 1 column 29 (char 28)"}}

 

So I would take this error at face value: the flavor probably has the extra_specs misconfigured.

 

I would stary by reviewing https://docs.openstack.org/nova/latest/admin/pci-passthrough.html and double checking your entries (nova.conf, and the flavor’s settings/specification) for a misplaced double-quote or single-quote, or a misplace colon (:), or missing configutation.

 

Running the command

openstack flavor show gigantic-h200-35c

and checking the properties results, and if you’re still not able to find the flaw, sharing with us the results.

 

Also double check your alias configurations nova.conf on your compute nodes have correct JSON for the section, something like:

[pci]

Alias = { "vendor_id":"10de", "product_id":"xxxx", "device_type":"type-PF", "name":"h200", "numa_policy":"preferred" }

 

Where you should check that the vendor_id and product_id matches output from lspci on the host, either 2342 or 2345 depending on whether your card is the 120GB or 480GB model.

 

Then, obviously make sure that your flavor’s extra spec properties match the alias you specify in your nova config, which are probably also case sensitive; the extra_spec, if not yet set, would need to be set like:

openstack flavor set gigantic-h200-35c --property "pci_passthrough:alias"="h200:1"

 

Good luck!

 

Kind Regards,

 

Joel McLean

Cyber Security and Product Development Manager

Australia’s First Tier IV Data Centre

https://www.micron21.com/

  1300 769 972

  03 9751 7618

  0407 888 429

  joel.mclean@micron21.com


 

Follow us on Twitter and https://m21status.com for important service and system updates.

This message is intended for the addressee named above. It may contain privileged or confidential information. If you are not the intended recipient of this message you must not use, copy, distribute or disclose it to anyone other than the addressee. If you have received this message in error please return the message to the sender by replying to it and then delete the message from your computer.

 

 

From: Sigurd Kristian Brinch <sigurd.k.brinch@uia.no>
Sent: Saturday, 8 November 2025 2:17 AM
To: openstack-discuss@lists.openstack.org
Subject: openstack server create fails with: Invalid PCI alias definition: Expecting property name enclosed in double quotes

 

When I try to create a VM with: openstack server create and the flavor has a property set with "pci_passthrough:alias"="NVIDIA-H200-35C:1"

The error message is:
novaclient.exceptions.BadRequest: Invalid PCI alias definition: Expecting property name enclosed in double quotes: line 1 column 29 (char 28) (HTTP 400) (Request-ID: req-66fb38d8-8f49-4073-99a2-fa4677d9b48e)

 

Anyone have any idea what is causing this?

 

A similar command worked fine just last week.

 

Attached is the debug output from the create command

 

BR
Sigurd