ERROR [Better Auth]: Error Error: NOT_FOUND
api-1 | 2025-05-05T18:47:57.241Z INFO [Better Auth]: Auth initialized
api-1 | [18:47:57.242] INFO (38): Starting server on port 80
api-1 | auth handler http://auth.localhost/auth/get-session <- this is the requset I get
api-1 | 2025-05-05T18:48:09.551Z ERROR [Better Auth]: Error Error: NOT_FOUND
api-1 | at processRequest (file:///app/node_modules/.pnpm/better-call@1.0.9/node_modules/better-call/dist/index.js:4833:25)
api-1 | at handler (file:///app/node_modules/.pnpm/better-call@1.0.9/node_modules/better-call/dist/index.js:4897:25)
api-1 | at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
api-1 | at async dispatch (file:///app/node_modules/.pnpm/hono@4.7.8/node_modules/hono/dist/compose.js:22:17)
api-1 | at async dispatch (file:///app/node_modules/.pnpm/hono@4.7.8/node_modules/hono/dist/compose.js:22:17)
api-1 | at async file:///app/node_modules/.pnpm/hono@4.7.8/node_modules/hono/dist/hono-base.js:198:25
api-1 | at async responseViaResponseObject (file:///app/node_modules/.pnpm/@hono+node-server@1.14.1_hono@4.7.8/node_modules/@hono/node-server/dist/index.mjs:372:13)
api-1 | at async Server.<anonymous> (file:///app/node_modules/.pnpm/@hono+node-server@1.14.1_hono@4.7.8/node_modules/@hono/node-server/dist/index.mjs:467:14)
api-1 | 2025-05-05T18:47:57.241Z INFO [Better Auth]: Auth initialized
api-1 | [18:47:57.242] INFO (38): Starting server on port 80
api-1 | auth handler http://auth.localhost/auth/get-session <- this is the requset I get
api-1 | 2025-05-05T18:48:09.551Z ERROR [Better Auth]: Error Error: NOT_FOUND
api-1 | at processRequest (file:///app/node_modules/.pnpm/better-call@1.0.9/node_modules/better-call/dist/index.js:4833:25)
api-1 | at handler (file:///app/node_modules/.pnpm/better-call@1.0.9/node_modules/better-call/dist/index.js:4897:25)
api-1 | at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
api-1 | at async dispatch (file:///app/node_modules/.pnpm/hono@4.7.8/node_modules/hono/dist/compose.js:22:17)
api-1 | at async dispatch (file:///app/node_modules/.pnpm/hono@4.7.8/node_modules/hono/dist/compose.js:22:17)
api-1 | at async file:///app/node_modules/.pnpm/hono@4.7.8/node_modules/hono/dist/hono-base.js:198:25
api-1 | at async responseViaResponseObject (file:///app/node_modules/.pnpm/@hono+node-server@1.14.1_hono@4.7.8/node_modules/@hono/node-server/dist/index.mjs:372:13)
api-1 | at async Server.<anonymous> (file:///app/node_modules/.pnpm/@hono+node-server@1.14.1_hono@4.7.8/node_modules/@hono/node-server/dist/index.mjs:467:14)
3 Replies
I am using hono and better auth 1.27
Debug logs output nothing for drizzle, meaning it does not reach the database it seems. The request does come to the
But the
export function initAuth() {
if (authInstance) {
return authInstance;
}
authInstance = betterAuth({
database: drizzleAdapter(getDB(), {
provider: "pg",
schema: {
user: users,
verification: verifications,
account: accounts,
session: sessions,
},
}),
trustedOrigins: ["http://web.localhost"],
emailAndPassword: {
enabled: true,
},
socialProviders: {
twitter: {
clientId: appConfig.twitter.clientId,
clientSecret: appConfig.twitter.clientSecret,
},
},
advanced: {
cookiePrefix: "project",
database: {
generateId: false,
}
},
});
logger.info("Auth initialized");
return authInstance;
}
export function getAuth() {
if (!authInstance) {
throw new Error("Auth not initialized. Call initAuth() first.");
}
return authInstance;
}
export const registerAuth = (app: App) => {
const auth = getAuth();
app.use("*", async (c: Context, next: Next) => {
const session = await auth.api.getSession({ headers: c.req.raw.headers });
if (!session) {
c.set("user", null);
c.set("session", null);
return next();
}
c.set("user", session.user);
c.set("session", session.session);
return next();
});
app.on(["POST", "GET"], "/auth/*", (c) => {
console.log("auth handler", c.req.raw.url);
return auth.handler(c.req.raw);
});
};
export function initAuth() {
if (authInstance) {
return authInstance;
}
authInstance = betterAuth({
database: drizzleAdapter(getDB(), {
provider: "pg",
schema: {
user: users,
verification: verifications,
account: accounts,
session: sessions,
},
}),
trustedOrigins: ["http://web.localhost"],
emailAndPassword: {
enabled: true,
},
socialProviders: {
twitter: {
clientId: appConfig.twitter.clientId,
clientSecret: appConfig.twitter.clientSecret,
},
},
advanced: {
cookiePrefix: "project",
database: {
generateId: false,
}
},
});
logger.info("Auth initialized");
return authInstance;
}
export function getAuth() {
if (!authInstance) {
throw new Error("Auth not initialized. Call initAuth() first.");
}
return authInstance;
}
export const registerAuth = (app: App) => {
const auth = getAuth();
app.use("*", async (c: Context, next: Next) => {
const session = await auth.api.getSession({ headers: c.req.raw.headers });
if (!session) {
c.set("user", null);
c.set("session", null);
return next();
}
c.set("user", session.user);
c.set("session", session.session);
return next();
});
app.on(["POST", "GET"], "/auth/*", (c) => {
console.log("auth handler", c.req.raw.url);
return auth.handler(c.req.raw);
});
};
console.log("auth handler", c.req.raw.url);
return auth.handler(c.req.raw);
console.log("auth handler", c.req.raw.url);
return auth.handler(c.req.raw);
auth.handler
fails for some reason with a 404
My client config
export const authClient = createAuthClient({
baseURL: config.authUrl,
basePath: "/auth",
plugins: [],
});
export const authClient = createAuthClient({
baseURL: config.authUrl,
basePath: "/auth",
plugins: [],
});
I just ran into this. I'm using hono as well. I had to set
basePath
on the server config@Sergei This helped me too! Thank you for sharing. @volks, can you try this and if it worked, mark is as solution?