return -EBADR;
state = unit_active_state(u);
- if (state == UNIT_RELOADING)
+ if (IN_SET(state, UNIT_RELOADING, UNIT_REFRESHING))
+ /* "refreshing" means some resources in the unit namespace is being updated. Unlike reload,
+ * the unit processes aren't made aware of refresh. Let's put the job back to queue
+ * in both cases, as refresh typically takes place before reload and it's better to wait
+ * for it rather than failing. */
return -EAGAIN;
if (state != UNIT_ACTIVE)