Trigger card gets triggered, but flows stops

I don’t understand what I’m doing wrong…

I’ve created a super simple app and tested it in a simple flow. My action card works and triggers my trigger card, but then the flow just stops.

App.js:

'use strict';

const Homey = require('homey');

module.exports = class FlowQueueBusApp extends Homey.App {

  /**
   * onInit is called when the app is initialized.
   */
  async onInit() {
    this.log('Flow Queue Bus has been initialized.');

    this.homey.flow.getActionCard("queue-message").registerRunListener(async (args) => {
      this.log("Queue Message Action.");

      const tokens = { "queue-name": "TEST", "message-id": "1234567890", "message": "Hello from Belgium", "attempts": 1 };
      await this.homey.flow.getTriggerCard("message-processing")?.trigger(tokens);
    });

    this.homey.flow.getActionCard("handle-message").registerRunListener(async (args) => {
      this.log("Handled Message Action.");
    });

    this.homey.flow.getTriggerCard("message-processing").registerRunListener(async (args) => {
      this.log("Processing Message Trigger.");
    });  
  }
};

Flow:

Log:

2025-08-26T13:35:55.119Z [log] [FlowQueueBusApp] Flow Queue Bus has been initialized.
2025-08-26T13:36:09.940Z [log] [FlowQueueBusApp] Queue Message Action.
2025-08-26T13:36:09.946Z [log] [FlowQueueBusApp] Processing Message Trigger.

It never writes something to the timeline or logs “Handled Message Action.“, not even if I remove the tokens:

Try explicitly returning true from the run listener:

this.homey.flow.getTriggerCard("message-processing").registerRunListener(async (args) => {
  this.log("Processing Message Trigger.");
  return true;
});  
1 Like

@robertklep Holy moly that worked!

Thanks for your help! Does this mean I can cancel a trigger (for example if the name of the queue doesn’t match the argument)?

Yes, that’s correct. If only it were properly documented… :roll_eyes:

@robertklep

Thanks to you this got finished:

1 Like