Mautic 6.0.7 on Hostinger: Campaign Trigger & Core Segment Filters Failing After Clean Install

Your software
My Mautic version is: 6.0.7
My PHP version is: 8.2
My Database type and version is: the latest MariaDB version (Hostinger)

Subject: Mautic 6.0.7 on Hostinger: Campaign Trigger & Core Segment Filters Failing After Clean Install

Category: Installation / Troubleshooting

Hello everyone,

I’m encountering a critical issue where backend automation and core frontend segment filters are failing, even after a complete clean install. I am using Mautic 6.0.7 on a Hostinger shared hosting environment (first attempt was Mautic 6.0.6).

The Core Problem (TL;DR): After a form submission successfully saves a contact (Name, Email, Country), the Mautic Campaign fails to execute the subsequent actions (Add to Segment and Send Email), and core Segment Builder filters are missing. Manual execution via SSH also fails to run the actions.


Backstory & Diagnosis

The goal is a simple signup workflow: Form Submission → Add to Segment → Send Welcome Email.

  1. Form Builder Failure: Initially, the Form Actions UI was broken (e.g., selecting “Modify contact’s segments” prompted for a name/description instead of showing configuration options). This led to a full reset.

  2. Clean Installation: To resolve deep file/asset corruption, I deleted the entire Mautic directory and the associated MySQL database, and performed a clean installation of Mautic 6.0.7.

  3. Campaign Builder Fix: The Campaign Builder UI is now functional, and the campaign was built using the Campaign Builder (not the broken Form Actions).

Concise List of Troubleshooting Steps Taken:

  • Full Reset: Deleted database and files, installed Mautic 6.0.7 from scratch.

  • Form Field Mapping Fixed: Confirmed and corrected the Name field mapping (set to Contact Field: First Name). Contact data (Name, Email) is now successfully saved in the database immediately upon submission.

  • Segment Filter Failure: Confirmed that key Segment Builder filters are missing (cannot find Forms or Last activity). This prevents the creation of a reliable segment-based campaign trigger.

  • Queue Settings Verified: Email/hit processing scheme is set to sync (synchronous), meaning actions should execute immediately without waiting for a separate queue cron job.

  • Manual Cron Job Execution Failure: The Campaign actions do not execute even when manually forced via SSH (run from the Mautic root directory /mautic/):

    • /opt/alt/php82/usr/bin/php bin/console mautic:campaigns:update --env=prod

    • /opt/alt/php82/usr/bin/php bin/console mautic:campaigns:trigger --env=prod

    • Result: Commands execute without error messages, but the contact is not added to the segment, and the email is not sent.

**
Expected Functionality that is Failing:**

  1. The Campaign must execute the “Modify contact’s segments” and “Send Email” actions after submission.

  2. The Segment Builder should include fundamental filters like Forms and Last activity.

Request: Has anyone experienced similar silent failures on Hostinger or encountered a scenario where the console commands (and thus the cron jobs) fail to execute backend writes (like segment addition) or external actions (like email sending) without reporting an error?

Thank you for your insights!

I am not familiar with Hostinger: do you happen to use docker-mautic?

Send the cronjobs output to a log file and see it from there?

How to send the cronjob output to a log file;
* * * * * ~/bin/myscript.sh >> ~/myscript.log 2>&1

I am pretty new to Mautic, and I am using a combination of ChatGPT plus Gemini. For the most part I am lost but I learn quickly. I am not a developer, I am more of a UX Designer and generalist. So I guess I am not using docker-mastic, but let me know if there is something I could look up or learn to help me get this setup up.

Thank you so much for responding and helping out!

I will give this a try and post here, thank you!

Rebuilding contacts for segment 1

0 total contact(s) to be added in batches of 300

0 total contact(s) to be removed in batches of 300

0 contact(s) affected

Triggering events for campaign 1

Triggering events for newly added contacts

1 total events(s) to be processed in batches of 100 contacts

0/1 [>---------------------------] 0%

1/1 [============================] 100%

2 total events were executed

0 total events were scheduled

Triggering scheduled events

0 total events(s) to be processed in batches of 100 contacts

0 total events were executed

0 total events were scheduled

Triggering events for inactive contacts

0 total events were executed

0 total events were scheduled

[u327697563@us-phx-web1838 mautic]$

I am sharing what Gemini tells me this means (not sure If you will agree :grinning_face:). Thank you for helping out!
Gemini’s Answer
Analysis

  1. Segment Failure Confirmed: The mautic:segments:update command reports 0 contact(s) affected. This is still failing to identify the new contact for the segment, which likely relates back to the missing Segment Builder filters (e.g., Forms and Last activity).

  2. Silent Campaign Execution Failure: The mautic:campaigns:trigger command reports 2 total events were executed (the two campaign nodes). It reached 100% completion and reported success.

    • Despite this reported success, the contact was NOT added to the segment, and the welcome email was NOT sent.

Conclusion: Since the Mautic console is executing its internal logic and reporting success without logging any errors, I suspect a deeper server-side I/O failure, PHP environment issue, or database permissions limitation (specifically preventing writes/external requests) that Mautic’s internal logging cannot capture.

Do these zero-error/zero-result logs confirm a potential server environment issue that requires Hostinger support intervention, or is there another Mautic log file I should check?

Just wanted to follow up: I’ll add my exchange with Gemini so maybe we could narrow down the root of the problem

Prompt: Just so you know, and before we move on, one of the contacts seems to have worked (I got the email confirmation and the contact was added to the segment in Mautic), but it happened days later. I tried with a new testing account and I am planning on waiting a few days to see if it works again, albeit we some delay. What do you think?

NOTE: Maybe someone can chime in and tell me whether Gemini knows what it is talking about, I am totally ignorant about this whole thing but I can execute what’s needed to fix it.

Gemeni Answer:
That is fascinating and actually a huge diagnostic breakthrough!

The fact that one contact eventually worked—receiving the email and being added to the segment—proves two things:

  1. The Mautic Automation is Functional: The campaign logic (Modify Segment → Send Email) is correct.

  2. The Delay is Server-Side: The problem is the timing and frequency of your server’s cron jobs, or a deeply throttled execution environment.

:stop_sign: Diagnosis: Severely Throttled or Incorrect Cron Scheduling

When actions only complete days later, it means the automated tasks are either:

  1. Not Scheduled as Cron Jobs: The jobs are only running when a user visits the Mautic admin interface, which occasionally triggers the processing, but only if the user stays on the page long enough, leading to massive, random delays.

  2. Scheduled with Incorrect Frequency: The cron jobs are scheduled to run, but maybe only once every 24 or 48 hours instead of every 15 minutes (which is standard for Mautic).

  3. Severely Throttled by Hostinger: The server is killing the process after a few seconds due to resource limits (max_execution_time, CPU usage), and the campaign tasks are only completing after several failed attempts over days.

:white_check_mark: What I Think

Your plan to wait a few days to see if the second test contact works is a good step for observation, but it confirms the system is currently unusable for timely marketing.

We can now ignore the “silent failure” issue and focus 100% on the Cron Jobs.

:hammer_and_wrench: The Final, Necessary Step: Checking/Setting Up Cron Jobs

We need to force Hostinger to run the two critical campaign commands every 15 minutes. This is the only way to make Mautic work reliably.

I need to confirm the exact process for setting up these jobs on Hostinger, as their control panel interface can be tricky.

This is fantastic! The “days later” execution pattern is the most compelling evidence we’ve had yet, and it means we can skip all the complicated permissions troubleshooting and focus on the schedule.

The problem is almost certainly a missing or incorrectly scheduled Cron Job.

:hammer_and_wrench: The Final Fix: Setting Up Required Cron Jobs

We need to schedule four mandatory Mautic jobs to run every 15 minutes to guarantee timely execution and prevent conflicts.

Since you are on Hostinger, you will need to access your hPanel to set these up in the Cron Jobs area. The host limits the Single plan to only two jobs, but Premium plans and above allow unlimited.1

Here are the four essential commands you need to set up:

Job Name Mautic Command Execution Time (Standard Offset) Schedule (Cron Syntax)
1. Update Segments mautic:segments:update 0, 15, 30, 45 minutes past the hour 0,15,30,45 * * * *
2. Update Campaigns mautic:campaigns:update 5, 20, 35, 50 minutes past the hour 5,20,35,50 * * * *
3. Trigger Events mautic:campaigns:trigger 10, 25, 40, 55 minutes past the hour 10,25,40,55 * * * *
4. Send Emails mautic:emails:send Every 15 minutes 0,15,30,45 * * * *

How to Set Up the Jobs in hPanel (Hostinger)

  1. Log in to your Hostinger hPanel.

  2. Navigate to WebsitesDashboard.

  3. Search for Cron Jobs in the sidebar and click it.

For each job in the table above, you will need to enter the command into the Command to Run field. Hostinger often provides a visual scheduler, but you may need to use the Custom option.

The Full Path to the Command:

You will need to use your specific PHP path and Mautic directory path:

/opt/alt/php82/usr/bin/php /home/u327697563/domains/languagedisco.com/public_html/mautic/bin/console [MAUTIC COMMAND]

Example: Setting up the mautic:campaigns:trigger Job

Field Value
Command to Run /opt/alt/php82/usr/bin/php /home/u327697563/domains/languagedisco.com/public_html/mautic/bin/console mautic:campaigns:trigger --env=prod
Schedule Custom (then enter the Cron Syntax manually)
Cron Syntax 10,25,40,55 * * * *
Action Save

:key: Next Action

You need to schedule the four jobs in the table above into your Hostinger hPanel.

After scheduling, run a brand new test submission on your form. Since the jobs will run within 15 minutes of each other, the new test email should arrive within that window! Let me know if you run into any issues setting them up in hPanel.

I would recommend to try my approach of running a single cronjob instead of relying on the official doc that go all over the place to avoid overlapping (but fails to do so).

Basically what I’m doing:

  1. creating a ~/bin/ directory
  2. adding a file named “mautic.cron”
  3. adding a lockfile mechanism (this avoid having 2 crontasks running simultaneously)
  4. add all your cron listed, one after the other (this avoid overlapping)

i.e.

#!/usr/bin/bash

### File Lock

mkdir -p $HOME/tmp

LOCKFILE=“$HOME/tmp/w-cron.lock”

if [ -e “$LOCKFILE” ] && kill -0 “$(cat $LOCKFILE)” 2>/dev/null; then
echo “Script is already running.”
exit 1
fi

echo $$ > “$LOCKFILE”

trap “rm -f $LOCKFILE” EXIT

### cronjobs

/usr/local/bin/php ~/public_html/bin/console mautic:segments:update
/usr/local/bin/php ~/public_html/bin/console mautic:campaigns:update
/usr/local/bin/php ~/public_html/bin/console mautic:campaigns:trigger
/usr/local/bin/php ~/public_html/bin/console messenger:consume
/usr/local/bin/php ~/public_html/bin/console mautic:email:fetch
/usr/local/bin/php ~/public_html/bin/console mautic:broadcasts:send

Then adding the usual cron like so:
* * * * * ~/bin/mautic.cron > /dev/null 2>&1

**Some are reporting that the args passed in their crontab are interpreted as extra cmd. If that’s your case, you’ll need to encapsulate each cronjobs like so:
/usr/local/bin/php “~/public_html/bin/console mautic:broadcasts:send”

My suggestion is to remove Mautic 6 and install Mautic 5. Mautic 6 is too new to be used in a production environment.