ERROR [Better Auth]: Error Error: NOT_FOUND

Hello I have a problème with better auth in my express js backend : Error :
Body: { provider: 'github', callbackURL: '/admin' }
[run] 2025-04-22T13:53:42.222Z ERROR [Better Auth]: Error Error: NOT_FOUND
[run] at processRequest (file:///C:/Users/malev/OneDrive%20-%20Questindustries/Documents/GitHub/Project-Omega/Server/node_modules/better-call/dist/index.js:4833:25)
[run] at handler (file:///C:/Users/malev/OneDrive%20-%20Questindustries/Documents/GitHub/Project-Omega/Server/node_modules/better-call/dist/index.js:4885:25)
[run] at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[run] at async file:///C:/Users/malev/OneDrive%20-%20Questindustries/Documents/GitHub/Project-Omega/Server/node_modules/better-call/dist/node.js:138:22
[run] POST /auth/sign-in/social 404 15.759 ms - -
[run] POST /auth/sign-in/social 404 15.759 ms - -
Body: { provider: 'github', callbackURL: '/admin' }
[run] 2025-04-22T13:53:42.222Z ERROR [Better Auth]: Error Error: NOT_FOUND
[run] at processRequest (file:///C:/Users/malev/OneDrive%20-%20Questindustries/Documents/GitHub/Project-Omega/Server/node_modules/better-call/dist/index.js:4833:25)
[run] at handler (file:///C:/Users/malev/OneDrive%20-%20Questindustries/Documents/GitHub/Project-Omega/Server/node_modules/better-call/dist/index.js:4885:25)
[run] at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
[run] at async file:///C:/Users/malev/OneDrive%20-%20Questindustries/Documents/GitHub/Project-Omega/Server/node_modules/better-call/dist/node.js:138:22
[run] POST /auth/sign-in/social 404 15.759 ms - -
[run] POST /auth/sign-in/social 404 15.759 ms - -
Auth.ts :
import { betterAuth } from "better-auth";
import { prismaAdapter } from "better-auth/adapters/prisma";
import { PrismaClient } from "@prisma/client";

const prisma = new PrismaClient();

export const auth = betterAuth({
database: prismaAdapter(prisma, {
provider: "mysql",
}),
emailAndPassword: {
enabled: true,
},
socialProviders: {
github: {
clientId: process.env.GITHUB_CLIENT_ID as string,
clientSecret: process.env.GITHUB_CLIENT_SECRET as string,
},
},
});
import { betterAuth } from "better-auth";
import { prismaAdapter } from "better-auth/adapters/prisma";
import { PrismaClient } from "@prisma/client";

const prisma = new PrismaClient();

export const auth = betterAuth({
database: prismaAdapter(prisma, {
provider: "mysql",
}),
emailAndPassword: {
enabled: true,
},
socialProviders: {
github: {
clientId: process.env.GITHUB_CLIENT_ID as string,
clientSecret: process.env.GITHUB_CLIENT_SECRET as string,
},
},
});
1 Reply
Faynix
FaynixOP2d ago
app.ts :
import express from "express";
import cors from "cors";
import helmet from "helmet";
import compression from "compression";
import morgan from "morgan";
import { auth } from "./lib/auth.js";
import { toNodeHandler } from "better-auth/node";

const app = express();

// Security middlewares
app.use(limiter);
app.use(helmet());
app.use(compression());
app.use(cors(config.CORS));
app.use(morgan("dev"));

// Environment-specific logging
if (process.env.NODE_ENV === "development") {
console.log("Backend running in dev mode");
app.use(morgan("dev"));
} else if (process.env.NODE_ENV === "production") {
console.log("Backend running in production mode");
app.use(morgan("combined"));
}

// Body parsers
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// Auth route
app.all(
"/auth/*",
(req, res, next) => {
console.log("Body:", req.body);
next();
},
toNodeHandler(auth)
);


export default app;
import express from "express";
import cors from "cors";
import helmet from "helmet";
import compression from "compression";
import morgan from "morgan";
import { auth } from "./lib/auth.js";
import { toNodeHandler } from "better-auth/node";

const app = express();

// Security middlewares
app.use(limiter);
app.use(helmet());
app.use(compression());
app.use(cors(config.CORS));
app.use(morgan("dev"));

// Environment-specific logging
if (process.env.NODE_ENV === "development") {
console.log("Backend running in dev mode");
app.use(morgan("dev"));
} else if (process.env.NODE_ENV === "production") {
console.log("Backend running in production mode");
app.use(morgan("combined"));
}

// Body parsers
app.use(express.json());
app.use(express.urlencoded({ extended: true }));

// Auth route
app.all(
"/auth/*",
(req, res, next) => {
console.log("Body:", req.body);
next();
},
toNodeHandler(auth)
);


export default app;

Did you find this page helpful?