© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
Cloudflare DevelopersCD
Cloudflare Developers•13mo ago•
4 replies
thehungrybird_

POST method is not working in fetch inside Queue Handler

Hono version: 4.6.20
Wrangler version: 3.107.2

I've tried a lot but fetch function inside queue is not executing in the worker both deployed version and local dev server.

import { Hono, Env } from 'hono'
import { env } from "hono/adapter";
import { send_to_queue } from '../utils/send-to-queue';

type Bindings = {
  REFERRAL_ENGINE_URL: string;
  DB_QUEUE: Queue;
}

interface QueueDataType {
  data: any;
  ref_url: string;
}

const app = new Hono<{ Bindings: Bindings }>()

app.get('/', (c) => {
  return c.json({ message: "Go Away" }, 200);
})

app.post('/', async (c) => {
  const data = await c.req.json()
  const EP_URL = env(c).EP_URL;
  console.log("Data Received")

  const Q_DATA : QueueDataType = {
    data: data,
    ref_url: EP_URL
  }

  await send_to_queue(Q_DATA, c)

  return c.json({ message: 'Request Received!' })
})

async function queueHandler(batch: MessageBatch<QueueDataType>, c: Context) {
  for (let message of batch.messages) {
    console.log("Data Received from Queue");
    try {
      console.log("Sending data to referral engine");
      console.log(message.body.data);
      console.log(typeof(message.body.data));
      const response = await fetch(`${message.body.ref_url}/api/v1/referral`, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Authorization': 'Bearer 9e985a31cd0581672bf8454123662de7'
        },
        body: JSON.stringify(message.body.data),
      });

      if (!response.ok) {
        throw new Error(`HTTP error! status: ${response.status}`);
      }
      // await send_to_ref(message.body.data, message.body.ref_url);
      message.ack();
    } catch (error) {
      console.error("Error forwarding data from queue:", error);
      console.log("Retrying after 100 seconds");
      message.retry({ delaySeconds: 100 });
    }
  }
}

export default {
  fetch: app.fetch,
  async queue(batch: MessageBatch<QueueDataType>, c: Env){
    queueHandler(batch, c)
  },
};
import { Hono, Env } from 'hono'
import { env } from "hono/adapter";
import { send_to_queue } from '../utils/send-to-queue';

type Bindings = {
  REFERRAL_ENGINE_URL: string;
  DB_QUEUE: Queue;
}

interface QueueDataType {
  data: any;
  ref_url: string;
}

const app = new Hono<{ Bindings: Bindings }>()

app.get('/', (c) => {
  return c.json({ message: "Go Away" }, 200);
})

app.post('/', async (c) => {
  const data = await c.req.json()
  const EP_URL = env(c).EP_URL;
  console.log("Data Received")

  const Q_DATA : QueueDataType = {
    data: data,
    ref_url: EP_URL
  }

  await send_to_queue(Q_DATA, c)

  return c.json({ message: 'Request Received!' })
})

async function queueHandler(batch: MessageBatch<QueueDataType>, c: Context) {
  for (let message of batch.messages) {
    console.log("Data Received from Queue");
    try {
      console.log("Sending data to referral engine");
      console.log(message.body.data);
      console.log(typeof(message.body.data));
      const response = await fetch(`${message.body.ref_url}/api/v1/referral`, {
        method: 'POST',
        headers: {
          'Content-Type': 'application/json',
          'Authorization': 'Bearer 9e985a31cd0581672bf8454123662de7'
        },
        body: JSON.stringify(message.body.data),
      });

      if (!response.ok) {
        throw new Error(`HTTP error! status: ${response.status}`);
      }
      // await send_to_ref(message.body.data, message.body.ref_url);
      message.ack();
    } catch (error) {
      console.error("Error forwarding data from queue:", error);
      console.log("Retrying after 100 seconds");
      message.retry({ delaySeconds: 100 });
    }
  }
}

export default {
  fetch: app.fetch,
  async queue(batch: MessageBatch<QueueDataType>, c: Env){
    queueHandler(batch, c)
  },
};
Cloudflare Developers banner
Cloudflare DevelopersJoin
Welcome to the official Cloudflare Developers server. Here you can ask for help and stay updated with the latest news
85,042Members
Resources
Was this page helpful?

Similar Threads

Recent Announcements

Similar Threads

Email Worker to webhook POST fetch not working in production
Cloudflare DevelopersCDCloudflare Developers / workers-and-pages-help
2y ago
No fetch handler!
Cloudflare DevelopersCDCloudflare Developers / workers-and-pages-help
8mo ago
fetch not working
Cloudflare DevelopersCDCloudflare Developers / workers-and-pages-help
8mo ago
fetch() not working
Cloudflare DevelopersCDCloudflare Developers / workers-and-pages-help
2y ago