#Clerk Webhook Isn't responding...?

3 messages · Page 1 of 1 (latest)

somber crypt
#

Here is my route.js code in api/webhook/clerk/route.js :

import { Webhook } from "svix";
import { headers } from "next/headers";
import { NextResponse } from "next/server";
import { createCommunity } from "@/lib/actions/community.action";

export const POST = async (request) => {
    const payload = await request.json();
    const header = headers();

    const heads = {
        "svix-id": header.get("svix-id"),
        "svix-timestamp": header.get("svix-timestamp"),
        "svix-signature": header.get("svix-signature"),
    };

    const wh = new Webhook(process.env.NEXT_CLERK_WEBHOOK_SECRET || "");

    let evnt = null;

    try {
        evnt = wh.verify(
            JSON.stringify(payload),
            heads
        )
    } catch (err) {
        return NextResponse.json({ message: err }, { status: 400 });
    }
    const eventType = evnt?.type;
    // Listen organization creation event
    if (eventType === "organization.created") {
        const { id, name, slug, logo_url, image_url, created_by } =
            evnt?.data ?? {};
        try {
            await createCommunity(id, name, slug, logo_url || image_url, "org bio", created_by);
            return NextResponse.json({ message: "User created" }, { status: 201 });

        } catch (err) {
    console.log(err);
    return NextResponse.json(
        { message: "Internal Server Error" },
        { status: 500 }
    );
}
    }
};
blazing dune
#

Once in your clerk account turn on username check

#

Save changes and create a new account to sign in