Masked: The Service systemctl Refuses to Start
Easy

Problem

After last night's deploy, orders-api is down and the load balancer is returning 502s. The deploy log shows systemctl start orders-api ran, but the service never came up. Two weeks ago, during an unrelated outage, someone on the team masked this unit to stop it flapping — and the runbook step to revert it was never done.

Figure out WHY the unit won't start and identify the correct fix — before anyone edits the unit file or reinstalls the package (neither will help).

Initial setup

  • Host: orders-1, Debian 12 (systemd).
  • Unit: orders-api.service, installed under /opt/orders-api.
  • systemctl start appears to do nothing and the unit stays down.

Acceptance

You've solved it when:

  • You've read systemctl status orders-api and seen `Loaded: masked
(Reason: Unit orders-api.service is masked.)` — the unit is masked, so systemd refuses to start it. (Active: inactive (dead), not failed.)
  • You've corroborated it: journalctl -u orders-api shows -- No entries --
(it never ran), and systemctl start orders-api reports `Unit orders-api.service is masked.` This is NOT a 203/EXEC, NOT an app crash, and NOT a resource problem.
  • You've confirmed the unit file and the binary are both fine (so the fix is
neither an edit nor a reinstall) and named the correct fix: systemctl unmask orders-api, then systemctl start orders-api (and systemctl enable orders-api to survive reboot).
Live session
Code
SavedNo commands yet