API `verifyEmail` problem

I'm encountering an issue with an email verification process in my TypeScript application. Despite the API response look like successful operation (a set-cookie header), an APIError is being thrown. better auth v1.2.10
await auth.api.verifyEmail({
headers: context.c.req.raw.headers,
query: { token: input.query.token, callbackURL: input.query.next },
returnHeaders: true
}).catch((error) => {
console.log('[auth.verifyEmail] error', error)
})
await auth.api.verifyEmail({
headers: context.c.req.raw.headers,
query: { token: input.query.token, callbackURL: input.query.next },
returnHeaders: true
}).catch((error) => {
console.log('[auth.verifyEmail] error', error)
})
Error Details:
[auth.verifyEmail] error [APIError] {
status: 'FOUND',
body: undefined,
headers: Headers {
'set-cookie': '__Secure-session_token=qDRyezDzJpmWU9OQ1barIkX6WSblT1G1.MVfzTRgjZG40FjK71U5ZvDfRsvIBhrCsuwp5DkM2cB8%3D; Max-Age=604800; Domain=localhost; Path=/; HttpOnly; Secure; SameSite=Lax; Partitioned, __Secure-session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNS0wNi0zMFQwODoyNTo1MC4wMDBaIiwidG9rZW4iOiJxRFJ5ZXpEekpwbVdVOU9RMWJhcklrWDZXU2JsVDFHMSIsImNyZWF0ZWRBdCI6IjIwMjUtMDYtMjNUMDg6MjU6NTAuMDAwWiIsInVwZGF0ZWRBdCI6IjIwMjUtMDYtMjNUMDg6MjU6NTAuMDAwWiIsImlwQWRkcmVzcyI6IiIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjE1OyBydjoxMzkuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xMzkuMCIsInVzZXJJZCI6IjAxOTc5YmU0LTk5N2MtNzFjZS05ZTcwLWJhZDk4YjQyZTAzNyIsImlkIjoiMDE5NzliZTQtYzM2MS03NDJhLWJkNGYtZTc4ZWNhN2ViMWQwIn0sInVzZXIiOnsibmFtZSI6IiIsImVtYWlsIjoiY29kZWxvbmVzb21lc3RAZ21haWwuY29tIiwiZW1haWxWZXJpZmllZCI6dHJ1ZSwiaW1hZ2UiOm51bGwsImNyZWF0ZWRBdCI6IjIwMjUtMDYtMjNUMDg6MjU6MzkuMDAwWiIsInVwZGF0ZWRBdCI6IjIwMjUtMDYtMjNUMDg6MjU6MzkuMDAwWiIsImlkIjoiMDE5NzliZTQtOTk3Yy03MWNlLTllNzAtYmFkOThiNDJlMDM3In19LCJleHBpcmVzQXQiOjE3NTA2NjcyMTAxODUsInNpZ25hdHVyZSRDc4X1pXQ0ZZeWFJMW5mckJlOGtpT2; Max-Age=60; Domain=localhost; Path=/; HttpOnly; Secure; SameSite=Lax; Partitioned',
location: 'https://localhost:3000/email/status?success_url=https%3A%2F%2Flocalhost%3A3000%2Fconsole&error_url=https%3A%2F%2Flocalhost%3A3000%2Ferror'
},
statusCode: 302
}
[auth.verifyEmail] error [APIError] {
status: 'FOUND',
body: undefined,
headers: Headers {
'set-cookie': '__Secure-session_token=qDRyezDzJpmWU9OQ1barIkX6WSblT1G1.MVfzTRgjZG40FjK71U5ZvDfRsvIBhrCsuwp5DkM2cB8%3D; Max-Age=604800; Domain=localhost; Path=/; HttpOnly; Secure; SameSite=Lax; Partitioned, __Secure-session_data=eyJzZXNzaW9uIjp7InNlc3Npb24iOnsiZXhwaXJlc0F0IjoiMjAyNS0wNi0zMFQwODoyNTo1MC4wMDBaIiwidG9rZW4iOiJxRFJ5ZXpEekpwbVdVOU9RMWJhcklrWDZXU2JsVDFHMSIsImNyZWF0ZWRBdCI6IjIwMjUtMDYtMjNUMDg6MjU6NTAuMDAwWiIsInVwZGF0ZWRBdCI6IjIwMjUtMDYtMjNUMDg6MjU6NTAuMDAwWiIsImlwQWRkcmVzcyI6IiIsInVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYIDEwLjE1OyBydjoxMzkuMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC8xMzkuMCIsInVzZXJJZCI6IjAxOTc5YmU0LTk5N2MtNzFjZS05ZTcwLWJhZDk4YjQyZTAzNyIsImlkIjoiMDE5NzliZTQtYzM2MS03NDJhLWJkNGYtZTc4ZWNhN2ViMWQwIn0sInVzZXIiOnsibmFtZSI6IiIsImVtYWlsIjoiY29kZWxvbmVzb21lc3RAZ21haWwuY29tIiwiZW1haWxWZXJpZmllZCI6dHJ1ZSwiaW1hZ2UiOm51bGwsImNyZWF0ZWRBdCI6IjIwMjUtMDYtMjNUMDg6MjU6MzkuMDAwWiIsInVwZGF0ZWRBdCI6IjIwMjUtMDYtMjNUMDg6MjU6MzkuMDAwWiIsImlkIjoiMDE5NzliZTQtOTk3Yy03MWNlLTllNzAtYmFkOThiNDJlMDM3In19LCJleHBpcmVzQXQiOjE3NTA2NjcyMTAxODUsInNpZ25hdHVyZSRDc4X1pXQ0ZZeWFJMW5mckJlOGtpT2; Max-Age=60; Domain=localhost; Path=/; HttpOnly; Secure; SameSite=Lax; Partitioned',
location: 'https://localhost:3000/email/status?success_url=https%3A%2F%2Flocalhost%3A3000%2Fconsole&error_url=https%3A%2F%2Flocalhost%3A3000%2Ferror'
},
statusCode: 302
}
4 Replies
Davis
DavisOP3mo ago
I notice if I don't pass the callbackURL everything works fine
Ping
Ping3mo ago
This is not necessarily an error, you're getting a 302 response, indicating to redirect. You're getting a redirect response because you included a callbackURL.
Davis
DavisOP3mo ago
But indicating to redirect shouldn't throw APIError right?
Ping
Ping3mo ago
All redirects in BetterAuth are thrown.

Did you find this page helpful?