Short Answer: Split the Problem Into Trigger, Condition, Action, and Mode

The fastest way to fix a Home Assistant automation that is not firing is to stop calling it one problem. It is usually one of four smaller problems: the trigger did not happen, a condition blocked the action, an action failed, or the automation was already running in a mode that ignored the new event.

In Home Assistant, a trigger is the event or state change that starts the automation. A condition is a check that can stop it. An action is what the automation does after it passes those checks. A mode decides what happens if the same automation starts again before the first run finishes.

So start with the automation's Traces. Home Assistant's troubleshooting docs say traces show a step-by-step timeline of what was triggered, what conditions were checked, and what each action did. If there is no trace for the moment you expected, look at the trigger source and whether the automation was enabled. If there is a trace, click the first failed or skipped step and fix that exact block before touching the rest of the automation.

The Trace-First Checklist

Use this order before rebooting or rebuilding the automation.

  1. Open Settings > Automations & scenes, then Traces. Look for the time the automation should have run. A trace means Home Assistant started the automation. No trace usually means the trigger never started it, trace storage is not available, or the system missed the event.
  2. Check whether the automation is enabled. It is easy to disable a test automation and forget. Also check whether one trigger inside the automation has enabled: false.
  3. Look at the trigger row. Home Assistant can show when a trigger fires in the editor. If the trigger row never reports activity, test the underlying entity, event, device, MQTT message path, calendar, time, sun, or zone source.
  4. Do not use Run actions as your only test. Home Assistant's docs say Run actions skips triggers and conditions. That is useful for testing the action sequence, but it does not prove the real trigger or condition path works.
  5. Use Developer Tools > Actions for a better manual test. Choose Automation: Trigger and decide whether to skip conditions. This lets you test the automation more like a real trigger would.
  6. Test each condition and action in the editor. Current Home Assistant versions can show live condition state, run individual actions, and display action errors without waiting for the real event.
  7. Check logs and templates. If the trace points to a template, copy it into Developer Tools > Template with the variables it needs. If the trace stops at an action, check the log around that exact time.
  8. Check the automation mode. A long delay in single mode can make the next trigger look ignored. Use restart, queued, or parallel only when the behavior matches the room.

What the Symptom Usually Means

What you see Most likely area What to check first
No trace at the expected time Trigger or trace storage Automation enabled state, trigger source, system time, restart window, and YAML id.
Trace exists but stops before actions Condition Time window, zone, entity state, template result, and whether the condition should be at the top or inside a choose path.
Trace reaches an action and then stops Action error Target entity, unavailable device, permission, service/action name, required data, and the log entry at that timestamp.
It works from Run actions but not in real life Trigger or condition Run actions skips triggers and conditions, so test the trigger separately.
It works once, then ignores later motion Run mode or delay mode: single, long waits, repeated triggers, and whether restart or queued fits better.
Time automation runs at the wrong hour Clock, time zone, DST, or update edge Settings > System > General time zone, host time, recent release notes, and GitHub/community reports for your version.

If There Is No Trace

No trace is a useful clue. It usually means Home Assistant never started the automation from the trigger you expected. A Reddit r/homeassistant thread about an automation that ran manually but never automatically ended with the same practical diagnosis: if there are no traces for the automatic event, look at the trigger definition first.

Check the source of the trigger outside the automation. For a motion sensor, watch the sensor entity change state in Developer Tools > States. For a door sensor, confirm the entity goes from closed to open. For MQTT, a message path used by many advanced local devices, listen to the topic. For a zone automation, confirm the person or device tracker is actually entering the zone, not just moving on a map card. For calendar and time triggers, confirm Home Assistant was running at the scheduled moment.

One Home Assistant Community answer also points out a simple but common YAML issue. YAML is Home Assistant's text configuration format, and moving automations between files can break indentation or include structure. If a YAML automation appears in the UI but behaves oddly, run the configuration check, confirm the file is included where you think it is, and make sure a YAML automation has an id. Home Assistant's troubleshooting docs say YAML automations need an id for debugging traces to be stored.

If the Trace Stops at a Condition

A condition stopping an automation is not a bug. It is the condition doing its job. Home Assistant's condition docs say actions run only if all top-level conditions return true. They also warn about a race condition: a trigger can happen, then the current state can change before the condition is checked.

That matters in real rooms. A motion sensor may turn on and off quickly. A door contact may bounce. A phone may enter a zone and then lose location confidence. A light may already be on because another automation touched it first. The trace tells you what Home Assistant saw at that moment, not what you expected the room to be doing.

For non-technical households, the fix is often to move from one fragile condition to a more forgiving pattern. Instead of "if motion is on right now," use a short for duration, an occupancy helper, or a choose path with an else notification. If the routine matters, let the automation report why it did not act instead of disappearing silently.

If an Action Failed or Stopped the Sequence

An automation can start correctly and still fail inside the action list. Home Assistant's action docs say actions are processed in order, and an action-level condition can stop everything after it. A target can also be wrong or unavailable: the light entity was renamed, the integration is offline, the script needs extra data, or a device is asleep.

Home Assistant 2026.3 made one important troubleshooting option easier to reach: Continue on error is now available in the visual automation editor. That does not mean every automation should use it. Use it for optional actions, such as sending several notifications where one channel may fail. Do not use it to hide failures in locks, alarms, garage doors, HVAC, or leak shutoff routines.

For serious automations, split the job. Put the risky device command behind a simple script, then call that script from the automation. Test the script directly. Add a notification if the device is unavailable. That gives you a smaller failure surface and a better trace.

If the Automation Runs at the Wrong Time

Time-based automations have their own traps. Check the Home Assistant time zone, the host machine time, and daylight-saving behavior before you rewrite the automation. Community and GitHub reports show that time-based automation confusion is a recurring category, including 2026 reports where users saw time triggers fire early, late, or not at all on specific versions.

Also check whether Home Assistant was restarting at the scheduled moment. A simple time trigger is not a reminder system that catches up later after an outage. If Home Assistant is off at 6:30, the 6:30 event can be missed. For important household routines, use a guard automation that checks "if it is after 6:30 and this has not happened yet" rather than relying on one exact second.

Sunrise and sunset automations add one more layer: the trigger depends on location, time zone, and sun calculation. If the trace timestamp looks impossible, verify the system location and time zone, then compare against a simple test automation before blaming the device being controlled.

If It Works Once and Then Ignores Later Events

Automation mode decides what happens when a second trigger arrives while the first run is still active. Home Assistant's mode docs say single is the default. In single, a new trigger is not started while the current run is still going.

That is often correct. You do not want five copies of a bedtime routine fighting each other. But it is wrong for some motion, notification, and button patterns. A motion-light automation with a long delay can ignore a second motion event if it is still waiting from the first run.

Use the mode that matches the household behavior:

  • single: use this when a second run should be ignored while the first one is active.
  • restart: use this when the newest event should reset the timer, common for motion lighting.
  • queued: use this when every event must finish in order, common for devices that dislike parallel commands.
  • parallel: use this only when independent copies are safe, such as separate notifications that do not touch the same device state.

Prefer Entities Over Mystery Device Triggers When Debugging

A Home Assistant entity is the named thing Home Assistant reads or controls, such as binary_sensor.front_door or light.porch. A device trigger can be convenient in the visual editor, but an entity trigger is often easier to debug because you can watch the exact state change in Developer Tools.

If a device trigger is confusing, temporarily rebuild it as an entity state trigger. Watch the entity state before and after the physical event. If the entity never changes, the problem is the device, the integration that connects it to Home Assistant, the radio, battery, network, or cloud service. If the entity changes but the automation has no trace, the problem is the trigger definition. If the trace appears but stops, the problem is later in the automation.

This is also where labels, areas, and floors can help or hurt. Home Assistant 2026.6 added target counts in the automation editor so you can see how many things a floor, area, label, or device target expands to. Use that when a light group or room target is affecting more, or fewer, entities than expected.

When Templates Are Involved

Templates are powerful, but they make failures less obvious. If a template decides whether the automation should run, test that template with the same inputs Home Assistant had at the time. The troubleshooting docs point to Developer Tools > Template for exactly this job.

Common template mistakes are plain: a misspelled entity, a missing attribute, comparing a number as text, not handling unknown or unavailable, or using trigger data that does not exist when you press Run actions. If the template uses trigger, remember that Run actions will not create the same trigger data that a real trigger would.

For homeowners, the practical rule is to keep templates out of the first version of a critical routine. Make the simple version work. Confirm traces. Then add the smarter condition and leave a note in the automation editor explaining why it exists.

Safety and Privacy Guardrails

When an automation does not fire, the tempting fix is to remove conditions until it works. Do not do that for anything that affects safety, privacy, or access.

  • Locks and garage doors: do not auto-unlock or auto-open from one presence signal. Start with notifications and manual confirmation.
  • Alarms and cameras: do not silence alerts just because one trace shows a false positive. Separate detection, notification, and recording decisions.
  • HVAC: do not let a broken occupancy or window sensor shut off heat, cooling, or ventilation without a fallback range.
  • Leak and power automations: test notifications before shutoff actions, and keep the manual valve, breaker, or physical control understandable.

A local smart home should be boring when it matters. Tara's approach is to keep core routines local, visible, and testable: traces should explain the routine, notifications should expose uncertainty, and risky actions should require stronger evidence than one flaky signal.

Tara's Take

For a Tara-style Home Assistant install, every important automation should be easy to answer in one minute: what starts it, what can block it, what devices it controls, what happens if a device is unavailable, and how another person in the house can tell whether it ran.

That means fewer giant automations and more small, named routines. Use clear entity names, short notes, traces, and a few helper entities that make household state obvious. The goal is not to make Home Assistant less powerful. The goal is to make the power inspectable when the porch light, bedtime scene, leak alert, or climate routine does not do what the family expected.

Automation debugging usually sits next to network, presence, backup, and update hygiene. These Tara guides are useful next.

FAQ

Why does my automation work when I press Run but not automatically?

Because Run actions skips triggers and conditions. It proves the action list can execute, but it does not prove the real trigger happened or that the real conditions passed. Use Traces and Developer Tools > Actions with Automation: Trigger for a better test.

What does no trace mean?

Most of the time, no trace means the automation did not start. Check that the automation is enabled, the trigger source actually changed, Home Assistant was running at that moment, and any YAML automation has an id so traces can be stored.

Why did the trace stop at a condition?

The condition returned false. That can be correct behavior. Click the condition in the trace, inspect the state or template value Home Assistant used, and decide whether the condition is wrong, too strict, or in the wrong place.

Can Home Assistant miss a scheduled automation?

Yes. If Home Assistant is off or restarting at the scheduled second, a simple time trigger can be missed. For important routines, add a backup check such as "after this time, if the thing has not happened yet, do it once."

Should I change automation mode?

Only after the trace shows repeated triggers while the automation is still running. Use restart for resettable motion timers, queued for ordered device commands, and parallel only when overlapping runs are safe.