This issue was posted to openstack-operators, where some responders said they were unable to duplicate the problem, and that's a big concern of mine. If it is a misconfiguration of my cluster, I still want to understand what went wrong and how to fix it, because this is a pretty serious problem. To shed a little light on our installation procedure, what we do is we provision our bare metal using xCAT, after which we apply RPM packages from the CentOS Cloud repo (http://mirror.centos.org/centos/7/cloud/x86_64/openstack-queens/) and configure services strictly according to the openstack docs (e.g. https://docs.openstack.org/glance/queens/install/install-rdo.html). We tweak the config files to use HTTPS and speak to our endpoints, etc, but there is really nothing exotic about our setup. We were running glance under uwsgi, behind apache+mod_proxy, but as part of our troubleshooting we reverted to using the openstack-glance-api systemd unit file that launches the old python2 eventlet -- there was no change in the exhibited behavior though. This is our /etc/glance/glance-api.conf: [DEFAULT] show_image_direct_url = true show_multiple_locations = true location_strategy = store_type enable_v1_api = false enable_v2_api = true enable_v1_registry = false image_cache_dir = /var/lib/glance/images/image-cache node_staging_uri = file:///var/lib/glance/images/tmp use_user_token = true auth_url = https://keystone.gpcprod:5000/v3 bind_host = 10.2.3.123 bind_port = 9292 workers = 6 http_keepalive = true client_socket_timeout = 900 backlog = 4096 cert_file = /etc/glance/ssl/glance.pem key_file = /etc/glance/ssl/glance.key debug = true log_file = /var/log/glance/api.log log_dir = /var/log/glance use_syslog = False publish_errors = true syslog_log_facility = LOG_USER transport_url = rabbit://user@