Synthetic Industry

Job laravel-queue-emails-stopped-sending · revised 9 October 2026

Restart a Laravel job queue that stopped sending business emails

Find why a Laravel queue stopped processing one named email or notification job, repair it on staging, and add a failed-job alert.

You might be seeing

  • Bookings are stored but confirmation emails never arrive
  • Invoices or notifications show up hours later or not at all
  • The queue table has a growing number of waiting or failed jobs

No passwords, keys, card details or admin invites needed to start.

What usually happened

Laravel puts notification work on a queue so the website can respond quickly. After a host move or deployment, the worker may not be running, may use stale code or a wrong queue connection, or may repeatedly fail a specific job. The front-end still says success, so a business owner sees the issue only when customers complain.

Who it’s for: Owner of a Laravel-based booking, shop or membership app whose automatic emails stopped after a deploy or hosting move.

Usually starts when: Customers no longer receive confirmation emails or invoices even though bookings or orders still appear in the app.

The result: The named email or notification job completes once on a staging copy after it is queued, failed jobs are visible, and an alert reaches the owner if processing stops again.

Check whether this job fits

Five short questions. Your answers stay on this page unless you choose to email them.

Is the app built with Laravel?
What stopped working?
Can a test booking or order be made without real charges or customers?
Can the site holder see queue or failed-job logs?
Does a test event create a queued or failed job?

Answer the questions to see whether this job fits.

Nothing is sent anywhere until you choose to email us.

Email us your answers

Checks you can run yourself

  1. Check how many jobs are waiting or failed

    Your site holder can run this read-only command in the app folder on the server. It lists jobs that failed; it doesn’t retry or delete anything.

    php artisan queue:failed

    Look for: A failed job and its error date can help locate the fault. An empty list proves neither that the worker is healthy nor that it stopped; ask the site holder to check pending jobs and worker status separately.

  2. Note the last message that did arrive

    Find the newest booking or order confirmation a customer actually received.

    Look for: Its date and time. If it matches a host move or deploy, that is usually where the worker stopped.

What you get

  • Cause and a redacted before/after queue log
  • Smallest code or worker configuration change with staging test results
  • A runbook for the site holder to deploy, restart workers and reverse the change
  • A test alert and instructions for checking failed jobs

Included

  • One Laravel app and one named email or notification job type
  • Reproduce queued-but-not-processed jobs on staging with captured outgoing mail
  • Repair one worker configuration or one reproducible job exception
  • Add a queue health check or failed-job alert to an address you own

Not included

  • Fixing mailbox SPF/DKIM/DMARC or spam placement after a job successfully sends
  • Rebuilding the app’s full queue architecture or changing queue providers
  • Bulk replay of past failed jobs without customer-approved deduplication
  • Production deployment under your credentials

How we know it’s done

Agreed with you before work starts. Each check produces evidence you keep.

  1. A test event queues one named job on staging and the worker processes it exactly once

    Evidence: Job ID, queue log and captured test message

  2. With the worker stopped on staging, the health check sends a test alert to the owner address

    Evidence: Alert email and check log

  3. A deliberately failing test job appears in failed jobs with a useful error, and the normal job still processes afterwards

    Evidence: Redacted failed-job entry and next successful job ID

  4. After your site holder deploys and restarts workers, a controlled live test creates exactly one expected message

    Evidence: Owner-held mailbox screenshot and redacted queue log

  5. Before a live restart, the pending-job inventory is dated and any unapproved historic email or invoice job is quarantined; one newly queued test job still runs exactly once

    Evidence: Redacted backlog inventory, owner approval or quarantine record, and new test job ID

Sign-off. The client checks the agreed before/after results and signs off after the authorised live holder performs the named live checks.

If it fails. If the agreed acceptance checks do not pass, the client does not pay, and keeps our findings and rollback steps.

When it fits, and when we stop

It fits when

  • The app is Laravel and uses a queue connection other than sync for the named job
  • Your site holder can supply a staging copy and the worker configuration without live secrets
  • You can give an example of one missing message and the event that should have triggered it
  • Someone can apply the worker restart and alert settings to production
  • A safe test event creates the named queued or failed job, or the worker log directly shows that the job is waiting

We stop and tell you if

  • No reproducible triggering event or queue logs can be obtained
  • A payment, legal notice or other irreversible job cannot be tested safely with fake data
  • The underlying mail service is rejecting successfully sent messages; that needs the mail authentication job
  • The failed-job backlog must be replayed without a way to prevent duplicate invoices or messages
  • The event does not enqueue the named job; the problem is upstream of the queue
  • There is a backlog of old jobs and no client-approved list of what may be sent after the worker restarts

What could go wrong

The site holder records the old worker settings and quarantines unapproved pending jobs before restarting; a repaired worker would otherwise send them automatically. If a live check fails, stop the worker and restore the settings without deleting or replaying any queued job. The client decides separately which old jobs may run.

Scroll the table sideways to read it all.

RiskHow we handle it
Replaying old jobs sends duplicate invoices or messagesInventory and quarantine unapproved pending jobs before any worker restart. Ask the owner to approve a dated list for replay; this fixed repair does not resend past invoices or messages.
Staging accidentally emails real customersCapture all outgoing mail and use made-up recipients.
A worker restart picks up stale code or wrong configurationRecord the worker process and configuration before the change and check the exact job ID afterwards.

A second reviewer checks the fix and confirms that nothing in it replays old jobs or could send duplicate invoices or messages.

How we deliver

We arrange the work and independent review, then show you the result against the agreed checks. You keep authority over your systems.

  • Run the staging copy with mail captured and trigger the event that should send the named message
  • Read the worker process, pending queue and failed-job records; list old jobs that would run automatically on restart and ask the client to approve or quarantine them
  • On a staging copy with old jobs quarantined, fix the worker configuration or one reproducible job exception
  • Add a check that alerts your address when jobs stop being processed, and test it
  • Independent review of the change and of anything that could resend old jobs
  • Hand over the change, the worker settings and the restart steps; your site holder applies them

This is a one-off job, not emergency cover or a subscription. We confirm eligibility, the total price, a start window and a delivery date before you accept. Work starts only after agreed inputs, secure access, any licences and necessary permissions are in place. Hosting, platform and supplier charges are excluded unless the written quote includes them. No charge or booking is created by an enquiry.

Need to keep it working?

If the queue is business-critical, discuss monitoring job health and investigating failures within agreed hours and escalation rules.

Ongoing work is separately scoped and quoted: no monitoring, response-time guarantee or automatic subscription is included in this job.

Explore an ongoing engineering lane, or mention the responsibility you need in your enquiry.

What you can check

This is a new service. We have not delivered this job for a client yet.

Other ways to get this done

  • Ask the host to review the pending-job inventory and failed-jobs list first, and quarantine duplicates and all unapproved old invoice or email jobs before any restart. With that safety check and your approval, a supervised-worker restart may solve the fault without a code change.
  • If the job succeeded but customers still did not receive mail, check sender authentication and spam folders instead of paying for a queue repair.

Questions

Will you resend every missing invoice?

No. Replaying old jobs could create duplicates. We give you the failed-job list and agree separately what can safely be resent.

Will this keep working after another deploy?

The alert tells you if it stops. Your holder must keep the worker running and restart it after deploys as the handover explains.

Start with an email

Send us

  • What message is missing and what event should have sent it
  • When it last worked and what changed, such as a deploy or host move
  • Any failed-job or queue error with private details removed
  • Who controls the server and can restart the worker

Later, once you agree

  • A controlled staging copy, a test login and sanitised queue data
  • A redacted worker config and relevant logs, never production passwords
  • An alert destination you own and a site holder for production changes
  • A company-controlled secure handoff agreed before access: no live passwords, keys, private code or customer records by ordinary email.

The client owns the accounts, domain, live system and keys. An AI agent prepares the change using only an authorised test copy or read-only information; a separate reviewer checks the risks, and the client or their site holder approves any live change. Synthetic Industry is owned by a person and remains accountable for the agreed work. We never ask for passwords in the first enquiry.

Enquire — £195 fixed price

Or write to hello@syntheticindustry.ai with “laravel-queue-emails-stopped-sending” as the subject.