Not getting proper error message from `PostgrestBuilder`
junedkhatri31 opened this issue · comments
Bug report
- [✓] I confirm this is a bug with Supabase, not with my own application.
- [✓] I confirm I have searched the Docs, GitHub Discussions, and Discord.
Describe the bug
When fetch function inside PostgrestBuilder
fails. The error does not contain proper information why the fetch failed.
To Reproduce
Steps to reproduce the behavior, please provide code snippets or a repository:
- Put postgrest server behind self signed certificate
- Run database query
const { data: somedata, error } = supabase .from('sometable') .select('*') .order('somecolumn', { ascending: false })
- Getting error message like the below
- It is not very clear what the error is
Expected behavior
The error should contain clear information that the error is we are not able to verify certificate
Screenshots
If applicable, add screenshots to help explain your problem.
System information
- OS: macOS
- Browser (if applies): NextJS server component
- Version of supabase-js: 2.25.0
- Version of Node.js: 18.18.2
Additional context
After spending 2 hours digging through internal library I found out that the error is self signed certificate is not being verified properly (Self signed cert is added properly in container's /etc/ssl/certs/ca-certificates.crt
path. That is also an issue but I will deal with it separately.)
The point is I found where exactly the problem is. It is in src/PostgrestBuilder.ts
inside then
function. res
object's error contains another error named cause
that contains more information about the error. Which is getting lost. Because it is not getting assigned in new error
object.
This problem hit me too. There's not way to determine the cause of the fetch error or handle it.
I'd suggest either propogating the original error:
return {
error: fetchError,
data: null,
...
}
Or a new error encapsulating the original error in its cause
property:
return {
error: new Error("Fetch Failed", {cause: fetchError}),
...
}