Agentbrisk

Relay.app Human-in-the-Loop Step Failing: Fix Guide

June 2, 2026 · Editorial Team · 7 min read · relay-apptroubleshootingerror-fix

You built a Relay.app workflow for your content team. It pulls draft articles from Notion, runs them through an AI step to generate an SEO title and meta description, then pauses at a human-in-the-loop (HITL) step where an editor approves, edits, or rejects the AI suggestions before Relay pushes the final content to your CMS. The workflow worked well during testing. Now, in production, articles are piling up in the HITL queue. Either the approval step isn't sending the notification email to the editor, the editor clicks "Approve" and nothing happens, or the workflow resumes but then fails on the next step with a vague error. Here's how to work through each scenario.

What this error actually means

Relay.app's human-in-the-loop step pauses a workflow run and creates a "pending action" that requires a designated team member to approve, fill out a form, or take a decision before the workflow continues. This pause is intentional and by design. The failure modes aren't that the step is broken in the traditional sense. They're that the notification didn't reach the right person, the reviewer's action didn't register, or the workflow couldn't resume cleanly from the paused state.

When the step "fails," it usually means one of three things: the notification went to the wrong user or channel, the reviewer's response timed out without the workflow knowing, or the data returned by the HITL step (the editor's edits or decision) wasn't in the format the next step expected.

Quick fix (when you need it working in 60 seconds)

  1. Open Relay.app and go to "Runs." Find the stuck workflow run and click it to open the run detail.
  2. Click the HITL step. If it shows "Waiting for response," confirm which email address or Slack user is listed as the assignee. If it's wrong, click "Reassign" and send it to the correct person.
  3. If the step shows the reviewer responded but the workflow didn't continue, click "Retry step" in the run detail. Relay will re-evaluate the HITL step output and attempt to continue the workflow.
  4. If the workflow continued but the next step failed: click the failing step to see its input. Check whether the data from the HITL step (the editor's edited text) is in the format the next step expects (for example, a plain string vs. a JSON object with a specific key).
  5. For stuck runs older than 24 hours where the reviewer never received the notification, manually complete the HITL step by clicking "Manually advance" in the run detail, if that option is available on your Relay plan.

Why this happens

The most frequent cause of a HITL step failing to notify is an incorrect or outdated assignee configuration. Relay's HITL steps can assign to a specific email, a specific Slack user, or a dynamic value pulled from the workflow data (for example, the author of the Notion article). If the dynamic value resolves to a user who isn't in your Relay workspace, or whose email address doesn't match their Relay account, the notification goes nowhere. Relay doesn't error on this. It just waits indefinitely.

Slack notification delivery is a common pain point specifically. Relay uses a Slack bot to send HITL notifications. If your Slack workspace revoked the Relay bot's permissions (something that happens when a Slack admin does a periodic third-party app audit), Relay can't send the DM. The HITL step queues correctly, the notification fails silently, and the editor never knows there's something to review.

Timeout-related failures are the second most common cause. Relay's HITL steps have a configurable timeout window. If the editor doesn't respond within that window (default is often 48 or 72 hours depending on your plan), Relay can either auto-cancel the run or resume it with a "timed out" status that needs manual handling. Many users don't realize this timeout exists until they see their first timeout-related failure.

The "workflow resumes but next step fails" scenario is almost always a data format issue. The HITL form the editor fills out returns data as a specific structure. If the editor's response includes a rich text field with markdown formatting, but the next step expects a plain text string, the type mismatch causes the next step to fail. This is especially common when Relay's HITL step feeds into a CMS publish step that expects a specific field format.

Permanent fix

  1. Audit your HITL step assignee configuration. Open the step in the workflow editor and check whether the assignee is a static email, a specific Relay team member, or a dynamic value from the workflow. If it's dynamic, add a fallback: IF assignee_email IS EMPTY THEN use [email protected]. This ensures the step always has a valid recipient.
  2. Reconnect your Slack integration. Go to Relay Settings > Integrations, find Slack, and click "Reconnect." Have a Slack admin authorize the Relay bot's permissions during the reconnect flow to ensure it has DM access.
  3. Enable email fallback for HITL notifications. In the HITL step configuration, turn on "Also notify via email." Even if the Slack notification fails, the reviewer will get an email. For critical approval steps, both channels is the right configuration.
  4. Set your HITL timeout explicitly. Click the step settings gear icon and set a timeout that matches your actual review SLA. If editors review content daily, a 24-hour timeout is appropriate. Set the "On timeout" action to send you an escalation notification rather than silently canceling the run.
  5. Add a data transformation step before the HITL step and after it. Before: format the AI-generated content into exactly the fields the HITL form will show. After: extract the specific fields from the HITL response and normalize them before passing to the CMS step. This two-transformation pattern prevents type mismatches.
  6. Build a "rejection" route explicitly. In the HITL step, configure the "Reject" path to write the draft back to a Notion "Needs work" database with the reviewer's comments attached. Without an explicit rejection path, rejected items often cause the workflow to end ambiguously with no feedback loop to the AI or the author.
  7. Test your HITL step in isolation using Relay's "Test run" mode with yourself as the assignee. Complete every possible path: approve, reject, and timeout. Verify that each path produces the correct downstream behavior before going live with your content team.
  8. For Relay plans that support it, configure run retention to keep completed and failed runs for at least 30 days. Go to Settings > Run History and adjust the retention period. This gives you audit history when a run fails and lets you diagnose the exact step and data state that caused the failure.

Prevention

Design your HITL forms with the minimum number of fields needed. Each field the reviewer fills out is a potential source of malformed data. If you only need an "approve/reject" decision and optional comments, don't add five additional text fields that might be left blank and confuse downstream steps.

Communicate HITL expectations to your team before enabling a workflow in production. Reviewers should know: what they'll receive (Slack DM or email), what to do (click the link, not reply to the email), and what the timeout is. When reviewers don't understand the process, they ignore notifications, timers expire, and runs pile up.

Test HITL notification delivery to every assignee before going to production. Send a test run, confirm each reviewer receives the notification in the expected channel, and confirm the "Approve" and "Reject" buttons work from their account. Do this even if your own account can approve fine. Relay permissions can vary between workspace roles.

When the fix doesn't work

If you've reconnected Slack, fixed the assignee, and HITL notifications still aren't arriving, check whether Relay is on a maintenance window or experiencing a service disruption. Relay's status page (if available) or their Twitter/X account usually announces incidents. The Relay Community Slack is also a fast way to confirm whether others are experiencing the same issue.

If a specific run is permanently stuck in a HITL waiting state and you can't manually advance it, contact Relay support via their in-app chat. Include the run ID (visible in the URL when viewing the run detail) and the step name. Relay's team can force-advance or cancel stuck runs from the backend.

For workflows where the HITL step is genuinely critical and can't have any gaps, consider whether Relay is the right tool for this step specifically. A dedicated approval tool like Approvals.app, or a custom Slack workflow using Slack's own approval blocks, may give you better notification reliability and audit trails for your content review process.

Search