{"id":553821,"date":"2026-08-18T09:42:36","date_gmt":"2026-08-18T09:42:36","guid":{"rendered":"https:\/\/webkul.com\/blog\/?p=553821"},"modified":"2026-08-18T09:42:42","modified_gmt":"2026-08-18T09:42:42","slug":"pimcore-messenger-worker","status":"publish","type":"post","link":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/","title":{"rendered":"Pimcore Messenger Worker: Fix a Stuck Job Queue"},"content":{"rendered":"<p>You dispatch an import, an export, or a translation job in Pimcore. The job screen shows it as <strong>queued<\/strong> or <strong>started<\/strong>. Then nothing happens. The progress bar never moves, and the queue just grows.<\/p>\n<p>This is the classic <strong>Pimcore Messenger Worker<\/strong> problem. The job sits in the queue, but no worker drains it. This guide walks through every common cause and its fix, in the order you should check them.<\/p>\n<p>Everything here is grounded in a real Pimcore 12 (Platform 2026.1) install and its Symfony Messenger setup. So the commands and transport names are the actual ones you will use.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-553837\" src=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp\" alt=\"pimcore-messenger-worker-stuck-queue\" width=\"1200\" height=\"750\" srcset=\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp 1200w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue-300x188.webp 300w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue-250x156.webp 250w, https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue-768x480.webp 768w\" sizes=\"(max-width: 1200px) 100vw, 1200px\" loading=\"lazy\" \/><\/p>\n<h2>What a Stuck Queue Actually Means<\/h2>\n<p>Pimcore runs long jobs off the web request with <strong><a href=\"https:\/\/symfony.com\/doc\/current\/messenger.html\" target=\"_blank\" rel=\"noreferrer noopener\">Symfony Messenger<\/a><\/strong>. A controller drops a small message onto a transport. Then a long-running worker process picks it up and runs the job to completion.<\/p>\n<p>That worker is a single command:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">bin\/console messenger:consume &lt;transport&gt; --memory-limit=250M --time-limit=3600<\/pre>\n<p>So a &#8220;stuck queue&#8221; almost always means one thing. The message is on the transport, but no healthy Pimcore Messenger Worker is consuming it. Your job stays <strong>started<\/strong> because nothing moved it forward.<\/p>\n<blockquote><p>The Messenger queue tracks delivery, not job progress. Pimcore keeps a separate tracking table for status and counts. So a frozen progress bar points at the worker, not your data.<\/p><\/blockquote>\n<h2>First, Check the Pimcore Messenger Worker Is Running<\/h2>\n<p>Start with the obvious. Is a worker alive for that queue at all?<\/p>\n<p>On Docker, the workers run under Supervisor. So check them there:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">supervisorctl status<\/pre>\n<p>You want the messenger programs showing <strong>RUNNING<\/strong>, not <strong>FATAL<\/strong> or <strong>EXITED<\/strong>. On a stock Pimcore container, one program consumes the core transports:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">messenger:consume pimcore_generic_data_index_queue scheduler_generic_data_index pimcore_core pimcore_maintenance pimcore_scheduled_tasks pimcore_image_optimize pimcore_asset_update pimcore_generic_execution_engine<\/pre>\n<p>Connector bundles add their own programs too. For example, a <a href=\"https:\/\/webkul.com\/blog\/pimcore-deepl-bundle\/\" target=\"_blank\" rel=\"noreferrer noopener\">DeepL<\/a> or <a href=\"https:\/\/webkul.com\/blog\/pimcore-bigcommerce-connector\/\" target=\"_blank\" rel=\"noreferrer noopener\">BigCommerce<\/a> install appends its own consumer for the <code>deepl<\/code>, <code>bigcommerce_import<\/code>, or <code>bigcommerce_export<\/code> queue.<\/p>\n<p>No process manager? Then start a worker by hand and watch it live:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">bin\/console messenger:consume pimcore_core -vv<\/pre>\n<h2>Cause 1: No Worker for That Specific Queue<\/h2>\n<p>This is the most common cause by far. A worker runs, but not for <em>your<\/em> queue.<\/p>\n<p>Each connector uses its own transport. So a running core worker does nothing for a <code>bigcommerce_export<\/code> message. First, see where the backlog sits:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">SELECT COUNT(*), queue_name FROM messenger_messages GROUP BY queue_name;<\/pre>\n<p>If rows pile up under a queue with no matching consumer, that is your answer. Add or restart the consumer for that exact transport. On Docker, that means a Supervisor program that names the queue.<\/p>\n<h2>Cause 2: The Transport Fell Back to sync:\/\/<\/h2>\n<p>Sometimes the job runs <em>inline<\/em> instead of queuing. As a result, the dispatch call blocks, and the browser hangs until the whole job finishes.<\/p>\n<p>This happens when a transport resolves to <code>sync:\/\/<\/code>. Many dev <code>.env<\/code> files override the Messenger DSN prefix to <code>sync:\/\/<\/code> to skip a real broker. So every &#8220;async&#8221; job then runs on the web request.<\/p>\n<p>Confirm the routing your message actually got:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">bin\/console debug:config framework messenger.routing<\/pre>\n<p>Your message class should list <code>senders: [your_queue]<\/code>. However, if it shows <code>sync<\/code> or the wrong transport, the routing is off. Clear the cache and check again:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">bin\/console cache:clear<\/pre>\n<h2>Cause 3: A kill -9 Ghost Is Blocking the Queue<\/h2>\n<p>Never <code>kill -9<\/code> a worker while a job runs. It kills the process mid-message and leaves two problems behind.<\/p>\n<ul>\n<li>A <strong>permanent in_progress ghost<\/strong> \u2014 the tracking row froze because the worker died before writing a final status.<\/li>\n<li>An <strong>orphan-claimed message<\/strong> \u2014 the dead consumer set <code>delivered_at<\/code>, so the Doctrine transport will not redeliver it for about an hour.<\/li>\n<\/ul>\n<p>Meanwhile, any job queued behind that orphan waits too. So one bad kill stalls the whole queue.<\/p>\n<p>To recover, delete the orphan message and close the ghost row:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">DELETE FROM messenger_messages WHERE id = &lt;orphanMsgId&gt;;\nUPDATE &lt;job_table&gt; SET status=&#039;stopped&#039;, ended_at=NOW() WHERE id=&lt;id&gt; AND status=&#039;in_progress&#039;;<\/pre>\n<p>Then re-dispatch from the UI. A fresh worker picks it up cleanly.<\/p>\n<h2>Cause 4: The Pimcore Messenger Worker Runs Stale Code<\/h2>\n<p>A worker loads your PHP once, at startup. After that, it keeps running the old code until it restarts.<\/p>\n<p>So after any deploy or bundle change, the running worker still executes the pre-change snapshot.<\/p>\n<p>The symptom is telling. You fix a bug, but the job behaves exactly as before. Or <code>stop_requested<\/code> flips to 1, yet the status never changes.<\/p>\n<p>The fix is a graceful restart, never a hard kill:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">bin\/console messenger:stop-workers<\/pre>\n<p>This tells every worker to finish its current message and exit. Then the process manager respawns a fresh worker with the new code.<\/p>\n<h2>Cause 5: The Worker Died and Never Came Back<\/h2>\n<p>Workers are meant to recycle. The <code>--memory-limit<\/code> and <code>--time-limit<\/code> flags make each worker exit on purpose, so a long-lived PHP process does not leak forever.<\/p>\n<p>That only works when something respawns it. So the Supervisor program needs <code>autorestart=true<\/code>. Without a process manager, the worker exits on recycle and simply never returns.<\/p>\n<p>A heavy job can also hit the memory ceiling and exit early. If that happens often, raise the limit for that queue.<\/p>\n<p>For example, the enrichment consumer here runs at <code>--memory-limit=350M<\/code>, rather than the default 250M.<\/p>\n<h2>Cause 6: A Supervisor Respawn Storm<\/h2>\n<p>Sometimes the worker is not stuck \u2014 it is crash-looping. A consumer that cannot boot exits instantly, and Supervisor respawns it instantly. So it forks dozens of times a second and burns CPU.<\/p>\n<p>The usual trigger is a leftover program for a bundle that is no longer installed. Its transport is undefined, so the worker exits 1 every time.<\/p>\n<p>A <code>user=<\/code> directive under a non-root Supervisor causes the same crash loop.<\/p>\n<blockquote><p>Harden every consumer program with <code>startsecs=1<\/code> and <code>startretries=3<\/code>. Then a real boot failure goes FATAL after three tries, instead of looping forever. With <code>startsecs=0<\/code>, Supervisor never gives up.<\/p><\/blockquote>\n<p>Delete the orphaned program blocks for bundles you removed. Keep only consumers whose bundle and transport both exist.<\/p>\n<h2>Cause 7: Failed Messages Piling Up<\/h2>\n<p>A throwing handler should land in a failure transport, not vanish. So check what failed and why:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">bin\/console messenger:failed:show<\/pre>\n<p>Read the error, fix the root cause, then retry the message:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"\">bin\/console messenger:failed:retry<\/pre>\n<p>This matters most for connector jobs. A bad credential or a rejected API call sends the message to the <code>*_failed<\/code> queue, where it waits for you.<\/p>\n<h2>The Pimcore Messenger Worker Diagnostic Cheat Sheet<\/h2>\n<p>Run these in order when a queue will not drain:<\/p>\n<ul>\n<li><code>supervisorctl status<\/code> \u2014 is a worker RUNNING for the queue?<\/li>\n<li><code>SELECT COUNT(*), queue_name FROM messenger_messages GROUP BY queue_name;<\/code> \u2014 where is the backlog?<\/li>\n<li><code>bin\/console debug:config framework messenger.routing<\/code> \u2014 did the message route to a real transport, not <code>sync<\/code>?<\/li>\n<li><code>bin\/console messenger:failed:show<\/code> \u2014 did the handler throw?<\/li>\n<li><code>bin\/console messenger:consume &lt;queue&gt; -vv<\/code> \u2014 run one worker in the foreground and read the output.<\/li>\n<\/ul>\n<p>One more rule for Docker. Supervisor reads its config only at start. So after you edit a program block, restart the Supervisor container, or the change never loads.<\/p>\n<h2>Keep the Pimcore Messenger Worker Healthy<\/h2>\n<p>A few habits prevent most stuck queues:<\/p>\n<ul>\n<li>Give each queue a worker with <code>autorestart=true<\/code>, so a recycle always respawns.<\/li>\n<li>Restart workers after every deploy with <code>messenger:stop-workers<\/code>, never <code>kill -9<\/code>.<\/li>\n<li>Set <code>startsecs=1<\/code> and <code>startretries=3<\/code> so a broken consumer fails fast.<\/li>\n<li>Watch <code>messenger_messages<\/code> and the <code>*_failed<\/code> queue as your early-warning signals.<\/li>\n<\/ul>\n<p>Freshly imported objects can also look &#8220;missing&#8221; even after a job completes. That is a separate index issue, not a worker one. Our guide on <a href=\"https:\/\/webkul.com\/blog\/pimcore-reindex\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pimcore reindex<\/a> covers that fix.<\/p>\n<h2>Run Your Pimcore Jobs With Confidence<\/h2>\n<p>A stuck queue is almost always a Pimcore Messenger Worker problem, not a data problem.<\/p>\n<p>So start with the worker, then the transport, then the failed queue. In that order, most cases resolve in minutes.<\/p>\n<p>Webkul builds Pimcore connectors and bundles that lean on this exact job engine. The <a href=\"https:\/\/webkul.com\/blog\/pimcore-12-magento-2-adobe-commerce\/\" target=\"_blank\" rel=\"noreferrer noopener\">Magento 2<\/a>, integrations all run async jobs the same way.<\/p>\n<p>To go deeper, explore our <a href=\"https:\/\/webkul.com\/pimcore-development\/\" target=\"_blank\" rel=\"noreferrer noopener\">Pimcore development services<\/a><\/p>\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>You dispatch an import, an export, or a translation job in Pimcore. The job screen shows it as queued or started. Then nothing happens. The progress bar never moves, and the queue just grows. This is the classic Pimcore Messenger Worker problem. The job sits in the queue, but no worker drains it. This guide <a href=\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/\">[&#8230;]<\/a><\/p>\n","protected":false},"author":399,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-553821","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Pimcore Messenger Worker: Fix a Stuck Job Queue<\/title>\n<meta name=\"description\" content=\"Pimcore Messenger Worker stuck? Fix jobs that never leave the queue: no consumer, sync:\/\/ fallback, kill -9 ghosts, respawn storms.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pimcore Messenger Worker: Fix a Stuck Job Queue\" \/>\n<meta property=\"og:description\" content=\"Pimcore Messenger Worker stuck? Fix jobs that never leave the queue: no consumer, sync:\/\/ fallback, kill -9 ghosts, respawn storms.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/\" \/>\n<meta property=\"og:site_name\" content=\"Webkul Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/webkul\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-08-18T09:42:36+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-08-18T09:42:42+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp\" \/>\n<meta name=\"author\" content=\"Nitesh Arora\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@webkul\" \/>\n<meta name=\"twitter:site\" content=\"@webkul\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Nitesh Arora\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/\"},\"author\":{\"name\":\"Nitesh Arora\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b0c0c713bd646e411ad5b4563364bb0\"},\"headline\":\"Pimcore Messenger Worker: Fix a Stuck Job Queue\",\"datePublished\":\"2026-08-18T09:42:36+00:00\",\"dateModified\":\"2026-08-18T09:42:42+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/\"},\"wordCount\":1170,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/\",\"url\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/\",\"name\":\"Pimcore Messenger Worker: Fix a Stuck Job Queue\",\"isPartOf\":{\"@id\":\"https:\/\/webkul.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp\",\"datePublished\":\"2026-08-18T09:42:36+00:00\",\"dateModified\":\"2026-08-18T09:42:42+00:00\",\"description\":\"Pimcore Messenger Worker stuck? Fix jobs that never leave the queue: no consumer, sync:\/\/ fallback, kill -9 ghosts, respawn storms.\",\"breadcrumb\":{\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#primaryimage\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp\",\"width\":1200,\"height\":750,\"caption\":\"pimcore-messenger-worker-stuck-queue\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/webkul.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pimcore Messenger Worker: Fix a Stuck Job Queue\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/webkul.com\/blog\/#website\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"name\":\"Webkul Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/webkul.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/webkul.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/webkul.com\/blog\/#organization\",\"name\":\"WebKul Software Private Limited\",\"url\":\"https:\/\/webkul.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"contentUrl\":\"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png\",\"width\":380,\"height\":380,\"caption\":\"WebKul Software Private Limited\"},\"image\":{\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/webkul\/\",\"https:\/\/x.com\/webkul\",\"https:\/\/www.instagram.com\/webkul\/\",\"https:\/\/www.linkedin.com\/company\/webkul\",\"https:\/\/www.youtube.com\/user\/webkul\/\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b0c0c713bd646e411ad5b4563364bb0\",\"name\":\"Nitesh Arora\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2628caeef979fc167146e3d99675895a39d9ca9c9105fef4b733893fd28a25f5?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2628caeef979fc167146e3d99675895a39d9ca9c9105fef4b733893fd28a25f5?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g\",\"caption\":\"Nitesh Arora\"},\"url\":\"https:\/\/webkul.com\/blog\/author\/nitesh-arora945\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pimcore Messenger Worker: Fix a Stuck Job Queue","description":"Pimcore Messenger Worker stuck? Fix jobs that never leave the queue: no consumer, sync:\/\/ fallback, kill -9 ghosts, respawn storms.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/","og_locale":"en_US","og_type":"article","og_title":"Pimcore Messenger Worker: Fix a Stuck Job Queue","og_description":"Pimcore Messenger Worker stuck? Fix jobs that never leave the queue: no consumer, sync:\/\/ fallback, kill -9 ghosts, respawn storms.","og_url":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/","og_site_name":"Webkul Blog","article_publisher":"https:\/\/www.facebook.com\/webkul\/","article_published_time":"2026-08-18T09:42:36+00:00","article_modified_time":"2026-08-18T09:42:42+00:00","og_image":[{"url":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp","type":"","width":"","height":""}],"author":"Nitesh Arora","twitter_card":"summary_large_image","twitter_creator":"@webkul","twitter_site":"@webkul","twitter_misc":{"Written by":"Nitesh Arora","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#article","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/"},"author":{"name":"Nitesh Arora","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b0c0c713bd646e411ad5b4563364bb0"},"headline":"Pimcore Messenger Worker: Fix a Stuck Job Queue","datePublished":"2026-08-18T09:42:36+00:00","dateModified":"2026-08-18T09:42:42+00:00","mainEntityOfPage":{"@id":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/"},"wordCount":1170,"commentCount":0,"publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"image":{"@id":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp","inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/","url":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/","name":"Pimcore Messenger Worker: Fix a Stuck Job Queue","isPartOf":{"@id":"https:\/\/webkul.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#primaryimage"},"image":{"@id":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#primaryimage"},"thumbnailUrl":"https:\/\/webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp","datePublished":"2026-08-18T09:42:36+00:00","dateModified":"2026-08-18T09:42:42+00:00","description":"Pimcore Messenger Worker stuck? Fix jobs that never leave the queue: no consumer, sync:\/\/ fallback, kill -9 ghosts, respawn storms.","breadcrumb":{"@id":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#primaryimage","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2026\/08\/pimcore-messenger-worker-stuck-queue.webp","width":1200,"height":750,"caption":"pimcore-messenger-worker-stuck-queue"},{"@type":"BreadcrumbList","@id":"https:\/\/webkul.com\/blog\/pimcore-messenger-worker\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/webkul.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Pimcore Messenger Worker: Fix a Stuck Job Queue"}]},{"@type":"WebSite","@id":"https:\/\/webkul.com\/blog\/#website","url":"https:\/\/webkul.com\/blog\/","name":"Webkul Blog","description":"","publisher":{"@id":"https:\/\/webkul.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/webkul.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/webkul.com\/blog\/#organization","name":"WebKul Software Private Limited","url":"https:\/\/webkul.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","contentUrl":"https:\/\/cdnblog.webkul.com\/blog\/wp-content\/uploads\/2021\/08\/webkul-logo-accent-sq.png","width":380,"height":380,"caption":"WebKul Software Private Limited"},"image":{"@id":"https:\/\/webkul.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/webkul\/","https:\/\/x.com\/webkul","https:\/\/www.instagram.com\/webkul\/","https:\/\/www.linkedin.com\/company\/webkul","https:\/\/www.youtube.com\/user\/webkul\/"]},{"@type":"Person","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/3b0c0c713bd646e411ad5b4563364bb0","name":"Nitesh Arora","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/webkul.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2628caeef979fc167146e3d99675895a39d9ca9c9105fef4b733893fd28a25f5?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2628caeef979fc167146e3d99675895a39d9ca9c9105fef4b733893fd28a25f5?s=96&d=https%3A%2F%2Fcdnblog.webkul.com%2Fblog%2Fwp-content%2Fuploads%2F2019%2F10%2Fmike.png&r=g","caption":"Nitesh Arora"},"url":"https:\/\/webkul.com\/blog\/author\/nitesh-arora945\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/553821","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/users\/399"}],"replies":[{"embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/comments?post=553821"}],"version-history":[{"count":4,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/553821\/revisions"}],"predecessor-version":[{"id":553841,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/posts\/553821\/revisions\/553841"}],"wp:attachment":[{"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/media?parent=553821"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/categories?post=553821"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webkul.com\/blog\/wp-json\/wp\/v2\/tags?post=553821"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}