[Bug 2155160] Update Released
Timo Aaltonen
2155160 at bugs.launchpad.net
Thu Sep 10 14:24:33 UTC 2026
The verification of the Stable Release Update for heat has completed
successfully and the package is now being released to -updates.
Subsequently, the Ubuntu Stable Release Updates Team is being
unsubscribed and will not receive messages about this bug report. In
the event that you encounter a regression using the package from
-updates please report a new bug using ubuntu-bug and tag the bug report
regression-update so we can easily find any regressions.
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to heat in Ubuntu.
https://bugs.launchpad.net/bugs/2155160
Title:
heat-api.conf references nonexistent WSGI script /usr/bin/heat-api
Status in Ubuntu Cloud Archive flamingo series:
New
Status in Ubuntu Cloud Archive gazpacho series:
New
Status in heat package in Ubuntu:
Fix Released
Status in heat source package in Questing:
Won't Fix
Status in heat source package in Resolute:
Fix Released
Status in heat source package in Stonking:
Fix Released
Bug description:
[ Impact ]
* In Resolute, the `heat-api` Apache vhost points at `/usr/bin/heat-api`, but
that file is not installed. The packaged WSGI entry point is
`/usr/bin/heat-wsgi-api`.
* Apache consequently cannot load the Heat API. Requests return HTTP 500 and
the Apache error log reports that `/usr/bin/heat-api` is missing.
* The upload updates the vhost to use the installed WSGI entry point and adds
an autopkgtest check that configured WSGI scripts exist and are executable.
[ Test Plan ]
* Use a disposable Resolute system with Apache. Before enabling
`resolute-proposed`, install and enable the released package:
sudo apt update
sudo apt install heat-api apache2 libapache2-mod-wsgi-py3 curl
sudo a2ensite heat-api
sudo systemctl restart apache2
* Confirm the enabled vhost uses the missing path and reproduce the
failure:
awk '$1 == "WSGIScriptAlias" { print }' /etc/apache2/sites-enabled/heat-api.conf
test ! -e /usr/bin/heat-api
test -x /usr/bin/heat-wsgi-api
curl -i http://127.0.0.1:8004/ || true
sudo tail -n 50 /var/log/apache2/heat_api_error.log
* Enable `resolute-proposed`, install the candidate `heat-api`, `heat-common`,
and `python3-heat` packages, and record their versions.
* Confirm the effective vhost now references `/usr/bin/heat-wsgi-api`, validate
Apache, restart it, and repeat the request:
awk '$1 == "WSGIScriptAlias" { print }' /etc/apache2/sites-enabled/heat-api.conf
sudo apache2ctl configtest
sudo systemctl restart apache2
curl -i http://127.0.0.1:8004/ || true
sudo tail -n 50 /var/log/apache2/heat_api_error.log
Apache must remain active and the log must not contain the earlier
missing-script error. Any remaining HTTP 500 must be investigated.
* If a locally modified vhost is retained during upgrade, confirm the enabled
configuration itself uses `/usr/bin/heat-wsgi-api`.
[ Where problems could occur ]
* A wrong alias, an unexecutable WSGI script, or an import failure would still
prevent Apache from starting or leave Heat API requests returning HTTP 500.
* Locally modified Apache conffiles may retain the old alias during upgrade.
Inspecting the enabled vhost is necessary, not merely the packaged file.
* The accompanying autopkgtest covers configured script presence, but it does
not prove a fully configured Heat deployment can serve authenticated API
requests. The Apache request check covers that boundary.
[ Other Info ]
* LP: #2155160 identifies the regression from the Apache/mod_wsgi packaging
transition. The sibling CFN vhost already uses its installed WSGI script and
is not changed.
Summary:
When heat-api runs under Apache/mod_wsgi (heat ≥ 25.0.0), Apache is unable to start the heat-api vhost because the WSGI script path in debian/heat-api.conf is wrong. Every heat-api request returns a 500 error, and the Apache error log shows:
"Target WSGI script not found or unable to stat: /usr/bin/heat-api"
Root cause:
The bug was introduced in heat 1:25.0.0~rc1-0ubuntu3 (questing, 2025-09-26) when the heat-api service was migrated from a systemd daemon to Apache/mod_wsgi. The new vhost file debian/heat-api.conf contains:
"WSGIScriptAlias / /usr/bin/heat-api"
However, no heat package installs /usr/bin/heat-api. The actual WSGI
entry-point script, installed by python3-heat, is /usr/bin/heat-wsgi-
api. The sibling vhost file debian/heat-api-cfn.conf is correct
(/usr/bin/heat-wsgi-api-cfn), making this a straightforward typo in
heat-api.conf.
Reproduction:
- Install heat-api on questing or resolute
- a2ensite heat-api && systemctl restart apache2
- curl -i http://localhost:8004/ -> HTTP 500
- grep "heat-api" /var/log/apache2/heat_api_error.log -> Target WSGI script not found or unable to stat: /usr/bin/heat-api
After applying the sed one-liner s|WSGIScriptAlias / /usr/bin/heat-
api$|WSGIScriptAlias / /usr/bin/heat-wsgi-api| to the installed conf
file and restarting apache2, the heat-api endpoint responds normally.
To manage notifications about this bug go to:
https://bugs.launchpad.net/cloud-archive/flamingo/+bug/2155160/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list