{"id":6608,"date":"2025-11-12T10:50:27","date_gmt":"2025-11-12T10:50:27","guid":{"rendered":"https:\/\/www.hostinger.com\/support\/?p=6608"},"modified":"2026-02-24T14:09:11","modified_gmt":"2026-02-24T14:09:11","slug":"hostinger-horizons-troubleshooting-supabase","status":"publish","type":"post","link":"https:\/\/www.hostinger.com\/support\/hostinger-horizons-troubleshooting-supabase\/","title":{"rendered":"Hostinger Horizons: Troubleshooting Supabase"},"content":{"rendered":"<div class=\"intercom-interblocks-callout\" style=\"background-color: #b2f2b280;border-color: #a0e4a033\"><strong>Supabase is no longer recommended for new Hostinger Horizons projects. If you&rsquo;re already using Supabase, your setup will continue to function as usual.<\/strong><\/div><p data-start=\"112\" data-end=\"434\">When it comes to Supabase, our responsibility lies in ensuring that the integration between Supabase and Horizons is properly established and maintained. However, any issues that occur within the Supabase platform itself relate to its functionality and database behavior, which fall under the scope of the Supabase team.<\/p><p data-start=\"140\" data-end=\"173\">What&rsquo;s recommended is that you:<\/p><ul>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Review and try following the general troubleshooting steps inside <\/span><a href=\"https:\/\/www.hostinger.com\/support\/10506025-hostinger-horizons-troubleshooting\/\"><span style=\"font-weight: 400\">this article.<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Review if the errors displayed can be found under the <\/span><a href=\"https:\/\/supabase.com\/docs\/guides\/troubleshooting\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Supabase Troubleshooting Documentation.<\/span><\/a><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Reach out to <\/span><a href=\"https:\/\/supabase.com\/support\" target=\"_blank\" rel=\"noopener\"><span style=\"font-weight: 400\">Supabase Support<\/span><\/a><span style=\"font-weight: 400\"> in case such issues persist.<\/span><\/li>\n<li style=\"font-weight: 400\"><span style=\"font-weight: 400\">Consider hiring a developer if the feature is essential to your project and challenges continue &mdash; platforms like <a class=\"decorated-link\" href=\"https:\/\/www.fiverr.com\/\" target=\"_new\" rel=\"noopener\" data-start=\"629\" data-end=\"662\">Fiverr<\/a> can help you find experienced developers who can assist further.<\/span><\/li>\n<\/ul><div class=\"intercom-interblocks-callout\" style=\"background-color: #e3e7fa80;border-color: #334bfa33\"><span style=\"font-weight: 400\">In general, the best troubleshooting step you could do regarding Supabase-related errors would be to follow the steps <\/span><a href=\"https:\/\/www.hostinger.com\/support\/10506025-hostinger-horizons-troubleshooting\/\"><span style=\"font-weight: 400\">here<\/span><\/a><span style=\"font-weight: 400\">, regarding finding the errors displayed on the browser tools, and directly prompt the fixes regarding such errors displayed.<\/span><\/div><div>\n<p data-start=\"107\" data-end=\"227\">However, there are a few recommendations we can offer depending on the specific error you&rsquo;re encountering in Supabase.<\/p>\n<\/div><div>\n<h2 id=\"h-common-issues-and-field-tested-solutions\">Common Issues and Field-Tested Solutions<\/h2>\n<h3><b>Supabase &amp; authentication problems<\/b><\/h3>\n<p>These are the most frequent issues.<\/p>\n<p><b>Typical root causes<\/b><\/p>\n<ul>\n<li>Wrong&nbsp;<b>Project URL<\/b>&nbsp;or&nbsp;<b>Anon\/Public key<\/b><b><br>\n<\/b><\/li>\n<li>New\/duplicate Supabase clients created with placeholder values<\/li>\n<li>Missing&nbsp;<b>Auth Providers<\/b>&nbsp;(e.g., Email not enabled)<\/li>\n<li>CORS misconfiguration<\/li>\n<li>Row Level Security (RLS) blocking reads\/writes<\/li>\n<li>Expired invites\/secrets after reconnecting projects<\/li>\n<\/ul>\n<p><b>Do the following: <\/b><\/p>\n<ul>\n<li><strong data-start=\"163\" data-end=\"216\">Use the client file that comes with your project:&nbsp;<\/strong>If you already have a file called&nbsp;<code data-start=\"253\" data-end=\"278\">customSupabaseClient.js<\/code>, keep using it. Don&rsquo;t create new ones like&nbsp;<code data-start=\"322\" data-end=\"335\">supabase.js<\/code>&nbsp;or&nbsp;<code data-start=\"339\" data-end=\"358\">supabaseClient.js<\/code>&nbsp;with example or placeholder data.<\/li>\n<li><strong data-start=\"396\" data-end=\"440\">Check your project settings in Horizons:&nbsp;<\/strong>Make sure the Project URL and Public\/Anon key match exactly with your Supabase project settings.<\/li>\n<li><strong data-start=\"543\" data-end=\"582\">Set up sign-in options in Supabase.&nbsp;<\/strong>Go to Supabase &rarr; Auth &rarr; Settings. Turn on&nbsp;<strong data-start=\"627\" data-end=\"636\">Email<\/strong>&nbsp;login first, and add other sign-in methods (like Google) if you need them.<\/li>\n<li><strong data-start=\"715\" data-end=\"746\">Add at least one test user:&nbsp;<\/strong>Either create a new one or make sure an existing test account works.<\/li>\n<li><strong data-start=\"821\" data-end=\"847\">Allow your app&rsquo;s URLs:&nbsp;<\/strong>In Supabase &rarr; Auth &rarr; URL Configuration, add both your&nbsp;<strong data-start=\"904\" data-end=\"915\">preview<\/strong>&nbsp;and&nbsp;<strong data-start=\"920\" data-end=\"928\">live<\/strong>&nbsp;(production) links.<\/li>\n<li><strong data-start=\"952\" data-end=\"997\">If you&rsquo;re using Row Level Security (RLS):&nbsp;<\/strong>Double-check that your rules allow the actions your app is trying to do.<\/li>\n<li><strong data-start=\"1076\" data-end=\"1109\">When you update keys or URLs:&nbsp;<\/strong>Redeploy your app so the changes take effect.<\/li>\n<li><strong data-start=\"1161\" data-end=\"1215\">If Horizons added extra Supabase files by mistake:&nbsp;<\/strong>Go back to the version before those changes, then use this prompt: &ldquo;<em>Use&nbsp;customSupabaseClient.js<\/em><em>&nbsp;for all Supabase calls. Remove any duplicate clients and update imports accordingly.<\/em>&rdquo;<\/li>\n<\/ul>\n<h3>Signup error caused by a timing issue in the database<\/h3>\n<p>When a user signs up, enters their details, and clicks <strong data-start=\"140\" data-end=\"151\">Confirm<\/strong>, they might see an <strong data-start=\"171\" data-end=\"194\">RLS violation error<\/strong> in the console. This happens because the app tries to update the database before the user is fully authorized. Horizons assumes the user is logged in immediately after signup, but with email verification, authorization only happens after they sign in.<\/p>\n<p><b>How to fix:&nbsp;<\/b><\/p>\n<article class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-WEB:9b3f9d92-1d77-409a-8efa-1a7797fe6991-15\" data-testid=\"conversation-turn-32\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"44af350d-9816-4e80-8a7b-d70aa98d3f3a\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<p data-start=\"0\" data-end=\"99\" data-is-last-node=\"\" data-is-only-node=\"\">Instruct Horizons to update the signup and login flow. For example, you can use a prompt like this: &ldquo;<em>Move initial database manipulation logic from sign up logic to initial sign in. All database manipulation requests that are protected by authorization RLS must be respected and moved to flow where users are authorized &ndash; signed in.<\/em>&ldquo;<\/p>\n<article class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-WEB:9b3f9d92-1d77-409a-8efa-1a7797fe6991-16\" data-testid=\"conversation-turn-34\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"cb9421ad-2a98-4112-96ec-8a340982ee07\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<p data-start=\"0\" data-end=\"153\" data-is-last-node=\"\" data-is-only-node=\"\">The console error usually shows which database table caused the issue. Include that table name in your prompt to get more accurate results from Horizons.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h3 class=\"z-0 flex min-h-[46px] justify-start\"><strong>Supabase changing browser tabs causes website navigation<\/strong><\/h3>\n<p>When a user switches browser tabs and returns to the app, they might see a different page than the one they left. This likely happens because of how <code data-start=\"149\" data-end=\"160\">useEffect<\/code>, <code data-start=\"162\" data-end=\"180\">visibilitychange<\/code>, and Supabase session handling work. When the tab is reopened, the app checks for an active session before Supabase confirms it, so it mistakenly thinks the user isn&rsquo;t logged in and redirects them to the home page.<\/p>\n<article class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"850c7def-f40f-44de-8662-db6d58d77360\" data-testid=\"conversation-turn-40\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"b0be8eb2-81cb-4b9d-86a8-92e8cd44b36b\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<p data-start=\"0\" data-end=\"170\" data-is-last-node=\"\" data-is-only-node=\"\">Ask Horizons to refactor the Supabase logic that uses the <code data-start=\"58\" data-end=\"76\">visibilitychange<\/code> browser event to handle authentication sessions. For example, you can use a prompt like this: &ldquo;<em>Update Supabase logic that is using `visibilitychange` to check for authentication state. Make sure the user session is fully acknowledged before redirecting the user to the root route.<\/em>&rdquo;<\/p>\n<h3 data-start=\"0\" data-end=\"170\"><strong>Missing Supabase Credentials<\/strong><\/h3>\n<article class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-WEB:9b3f9d92-1d77-409a-8efa-1a7797fe6991-20\" data-testid=\"conversation-turn-42\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"ced3a5ff-6ac8-4a2e-8129-b0a33bbbce97\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<p data-start=\"0\" data-end=\"76\" data-is-last-node=\"\" data-is-only-node=\"\">Every action triggers an error indicating a missing API key or Supabase URL.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"mt-3 w-full empty:hidden\">\n<div class=\"text-center\">\n<p><b>How to fix<\/b><\/p>\n<article class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-WEB:9b3f9d92-1d77-409a-8efa-1a7797fe6991-21\" data-testid=\"conversation-turn-44\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"9f1aa407-70d6-4034-a5a4-127b27c97c17\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<p data-start=\"0\" data-end=\"132\" data-is-last-node=\"\" data-is-only-node=\"\">Disconnect and reconnect your Supabase project. This will re-upload the Supabase API file and automatically add the API key and URL.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"z-0 flex min-h-[46px] justify-start\">\n<article class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-WEB:9b3f9d92-1d77-409a-8efa-1a7797fe6991-24\" data-testid=\"conversation-turn-50\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"7330f5ed-75d4-4aea-8b8a-23e591ed2c92\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<div class=\"intercom-interblocks-callout\">Sometimes issues can&rsquo;t be reproduced or the steps aren&rsquo;t clear, but logs are saved and can often help identify the problem. Be sure to select the correct timestamp when reviewing them.<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"mt-3 w-full empty:hidden\">\n<div class=\"text-center\">\n<h3>Sandbox or Preview fails to start, hangs, or doesn&rsquo;t finish building<\/h3>\n<p><b>Typical root causes<\/b><\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<div class=\"pointer-events-none h-px w-px\" aria-hidden=\"true\" data-edge=\"true\">\n<ul>\n<li>Heavy or unsupported packages causing&nbsp;<code data-start=\"65\" data-end=\"78\">npm install<\/code>&nbsp;to hang<\/li>\n<li>AI-made edits to critical configuration files (like&nbsp;<code data-start=\"140\" data-end=\"156\">vite.config.js<\/code>&nbsp;or&nbsp;<code data-start=\"160\" data-end=\"174\">package.json<\/code>)<\/li>\n<li>Version conflicts between dependencies<\/li>\n<\/ul>\n<p data-start=\"0\" data-end=\"11\"><strong data-start=\"0\" data-end=\"11\">Do this<\/strong><\/p>\n<ul data-start=\"13\" data-end=\"732\">\n<li data-start=\"13\" data-end=\"144\">\n<p data-start=\"15\" data-end=\"144\"><strong data-start=\"15\" data-end=\"55\">Don&rsquo;t manually edit <code data-start=\"37\" data-end=\"53\">vite.config.js<\/code><\/strong> (and avoid asking the AI to). If it was changed, <strong data-start=\"105\" data-end=\"143\">revert to the last working message<\/strong>.<\/p>\n<\/li>\n<li data-start=\"13\" data-end=\"144\">\n<p data-start=\"15\" data-end=\"144\"><strong data-start=\"147\" data-end=\"179\">Avoid heavy\/complex packages<\/strong> that often stall installs. If builds started failing after adding one, <strong data-start=\"296\" data-end=\"323\" data-is-only-node=\"\">remove it and try again<\/strong>.<\/p>\n<\/li>\n<li data-start=\"325\" data-end=\"538\">\n<p data-start=\"327\" data-end=\"538\">If dependencies won&rsquo;t resolve, use this prompt: <strong data-start=\"379\" data-end=\"538\">&ldquo;<\/strong><em>Resolve dependency conflicts without modifying <code data-start=\"429\" data-end=\"445\">vite.config.js<\/code>. Keep only the essential packages. Prefer stable versions and remove unused dependencies.<\/em><strong data-start=\"379\" data-end=\"538\">&rdquo;<\/strong><\/p>\n<\/li>\n<li data-start=\"539\" data-end=\"732\">\n<p data-start=\"541\" data-end=\"732\">If Preview is still stuck after reverting and trimming deps, <strong data-start=\"602\" data-end=\"627\">use &ldquo;Ask to Fix&rdquo; once<\/strong>, then <strong data-start=\"634\" data-end=\"670\">capture logs and <a href=\"https:\/\/www.hostinger.com\/support\/1583780-how-to-contact-hostinger-support\/\">contact support<\/a><\/strong> (include your project URL and the time the failure occurred).<\/p>\n<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"mt-3 w-full empty:hidden\">\n<h3><b>Dependency and version conflicts<\/b><\/h3>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<div class=\"pointer-events-none h-px w-px\" aria-hidden=\"true\" data-edge=\"true\">\n<article class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"8272069c-9983-4ab8-b824-3e7cb80ffcf5\" data-testid=\"conversation-turn-58\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"04d8aa20-b709-408b-a9a5-75385eb0f552\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<p data-start=\"0\" data-end=\"106\" data-is-last-node=\"\" data-is-only-node=\"\">The issue appears when <code data-start=\"23\" data-end=\"36\">npm install<\/code> never finishes and shows &ldquo;dependency tree&rdquo; or peer-dependency errors.<\/p>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<div class=\"pointer-events-none h-px w-px\" aria-hidden=\"true\" data-edge=\"true\"><strong data-start=\"0\" data-end=\"11\" data-is-only-node=\"\">Do this<\/strong><\/div>\n<ul>\n<li class=\"pointer-events-none h-px w-px\" aria-hidden=\"true\" data-edge=\"true\">Pin stable library versions instead of using broad ranges.<\/li>\n<li class=\"pointer-events-none h-px w-px\" aria-hidden=\"true\" data-edge=\"true\">Remove or replace problematic packages, and re-run&nbsp;<strong data-start=\"124\" data-end=\"138\">Ask to Fix<\/strong>&nbsp;to rewrite imports.<\/li>\n<li class=\"pointer-events-none h-px w-px\" aria-hidden=\"true\" data-edge=\"true\">If the AI added a tool or plugin that changed your build setup (for example, a PWA integration modifying Vite), revert those changes and ask it to add the feature without altering the core build settings.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"mt-3 w-full empty:hidden\">\n<div class=\"text-center\">\n<article class=\"text-token-text-primary w-full focus:outline-none [--shadow-height:45px] has-data-writing-block:pointer-events-none has-data-writing-block:-mt-(--shadow-height) has-data-writing-block:pt-(--shadow-height) [&amp;:has([data-writing-block])&gt;*]:pointer-events-auto [content-visibility:auto] supports-[content-visibility:auto]:[contain-intrinsic-size:auto_100lvh] scroll-mt-[calc(var(--header-height)+min(200px,max(70px,20svh)))]\" dir=\"auto\" data-turn-id=\"request-WEB:9b3f9d92-1d77-409a-8efa-1a7797fe6991-30\" data-testid=\"conversation-turn-62\" data-scroll-anchor=\"true\" data-turn=\"assistant\">\n<div class=\"text-base my-auto mx-auto pb-10 [--thread-content-margin:--spacing(4)] thread-sm:[--thread-content-margin:--spacing(6)] thread-lg:[--thread-content-margin:--spacing(16)] px-(--thread-content-margin)\">\n<div class=\"[--thread-content-max-width:40rem] thread-lg:[--thread-content-max-width:48rem] mx-auto max-w-(--thread-content-max-width) flex-1 group\/turn-messages focus-visible:outline-hidden relative flex w-full min-w-0 flex-col agent-turn\">\n<div class=\"flex max-w-full flex-col grow\">\n<div class=\"min-h-8 text-message relative flex w-full flex-col items-end gap-2 text-start break-words whitespace-normal [.text-message+&amp;]:mt-1\" dir=\"auto\" data-message-author-role=\"assistant\" data-message-id=\"04d88b82-623c-4589-81a0-2bbf3f87604b\" data-message-model-slug=\"gpt-5\">\n<div class=\"flex w-full flex-col gap-1 empty:hidden first:pt-[1px]\">\n<div class=\"markdown prose dark:prose-invert w-full break-words light markdown-new-styling\">\n<h3 data-start=\"0\" data-end=\"44\">Temporary global or infrastructure incidents<\/h3>\n<p data-start=\"0\" data-end=\"111\">Sometimes external services (e.g., auth or backends) or internal infrastructure can cause temporary failures.<\/p>\n<p data-start=\"113\" data-end=\"200\"><strong data-start=\"113\" data-end=\"124\">Do this<\/strong><\/p>\n<ul>\n<li data-start=\"113\" data-end=\"200\">If the logs show external service outages or timeouts, try again later.<\/li>\n<li data-start=\"113\" data-end=\"200\">Avoid making major or destructive changes during incidents. Capture the logs and use&nbsp;<strong data-start=\"286\" data-end=\"300\">Ask to Fix<\/strong>&nbsp;once services have recovered.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/article>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Best practices for fixing errors and troubleshooting issues in Supabase<\/p>\n","protected":false},"author":591,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"include_on_kodee":true,"footnotes":""},"categories":[293],"tags":[],"class_list":["post-6608","post","type-post","status-publish","format-standard","hentry","category-hostinger-horizons"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/support\/hostinger-horizons-troubleshooting-supabase","default":1}],"include_on_kodee":true,"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/support\/wp-json\/wp\/v2\/posts\/6608","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/support\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/support\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/support\/wp-json\/wp\/v2\/users\/591"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/support\/wp-json\/wp\/v2\/comments?post=6608"}],"version-history":[{"count":6,"href":"https:\/\/www.hostinger.com\/support\/wp-json\/wp\/v2\/posts\/6608\/revisions"}],"predecessor-version":[{"id":8195,"href":"https:\/\/www.hostinger.com\/support\/wp-json\/wp\/v2\/posts\/6608\/revisions\/8195"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/support\/wp-json\/wp\/v2\/media?parent=6608"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/support\/wp-json\/wp\/v2\/categories?post=6608"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/support\/wp-json\/wp\/v2\/tags?post=6608"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}