Skip to content

i was able to hit this breakpoint in pglite: throw new Error("Should never happen"); #826

@GyulaSipos

Description

@GyulaSipos

well, itt happened :). I run a Preact app, no SSR, plain old SPA. I have a search field that hzdrates the useLiveQuery hook.

versions:
"@electric-sql/pglite": "^0.3.11",
"@electric-sql/pglite-react": "^0.2.29",
"@electric-sql/pglite-sync": "^0.3.15",

small pseudocode:

const userInputSignal = useSignal(MyOwnTypedef);
const params = [userInputSignal?.value?.something, userInputSignal?.value?.somethingElse];
const haveParams = params.every(param => typeof param === 'string');
const queryString = haveParams ? 'SELECT FROM ...' : null;
const items = useLiveQuery(queryString, haveParams ? params : null);

When i load my page, all things inside of my type are undefined, so i wouldn't expect the liveQuery to run at all, yet, as soon as the component renders, i get the following error in my console:

something: undefined undefined
somethingElse: undefined undefined
preact_debug.js?v=1ec0564b:103 Uncaught Error: Should never happen
    at Object.__ (@electric-sql_pglite[-react.js?v=1ec0564b:231:13](about:blank))
    at B ([chunk-MNOQBK7E.js?v=1ec0564b:141:13](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A141%3A13))
    at Array.forEach (<anonymous>)
    at j ([chunk-MNOQBK7E.js?v=1ec0564b:84:37](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A84%3A37))
(anonymous) @ @electric-sql_pglite[-react.js?v=1ec0564b:231](about:blank)
B @ [chunk-MNOQBK7E.js?v=1ec0564b:141](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A141)
j @ [chunk-MNOQBK7E.js?v=1ec0564b:84](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A84)
setTimeout
r2 @ [chunk-MNOQBK7E.js?v=1ec0564b:131](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A131)
requestAnimationFrame
w @ [chunk-MNOQBK7E.js?v=1ec0564b:133](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A133)
c.diffed @ [chunk-MNOQBK7E.js?v=1ec0564b:102](http://chunk-mnoqbk7e.js/?v=1ec0564b%3A102)
l.diffed @ @electric-sql_pglite[-react.js?v=1ec0564b:186](about:blank)
(anonymous) @ @preact_signals.js?v=1ec0564b:509
O @ [chunk-XSBY5KNH.js?v=1ec0564b:171](http://chunk-xsby5knh.js/?v=1ec0564b%3A171)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
q @ [chunk-XSBY5KNH.js?v=1ec0564b:214](http://chunk-xsby5knh.js/?v=1ec0564b%3A214)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:170](http://chunk-xsby5knh.js/?v=1ec0564b%3A170)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
q @ [chunk-XSBY5KNH.js?v=1ec0564b:214](http://chunk-xsby5knh.js/?v=1ec0564b%3A214)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:170](http://chunk-xsby5knh.js/?v=1ec0564b%3A170)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
q @ [chunk-XSBY5KNH.js?v=1ec0564b:214](http://chunk-xsby5knh.js/?v=1ec0564b%3A214)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:170](http://chunk-xsby5knh.js/?v=1ec0564b%3A170)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
I @ [chunk-XSBY5KNH.js?v=1ec0564b:69](http://chunk-xsby5knh.js/?v=1ec0564b%3A69)
O @ [chunk-XSBY5KNH.js?v=1ec0564b:158](http://chunk-xsby5knh.js/?v=1ec0564b%3A158)
G @ [chunk-XSBY5KNH.js?v=1ec0564b:247](http://chunk-xsby5knh.js/?v=1ec0564b%3A247)
(anonymous) @ index.tsx:13

Just for clarification, index.tsx:13 is <PGliteProvider db={db} >

The top most link in the call stack goes to this pglite function:

function P3(e, t, n) {
  let o = y2(), c = A(t), f = A(void 0), i, T3 = false;
  typeof e != "string" && !(e instanceof Promise) && (i = e, T3 = f.current !== i, f.current = i);
  let [u2, v] = d(i?.initialResults), d2 = c.current;
  return k2(c.current, t) || (c.current = t, d2 = t), y(() => {
    let l2 = false, s = (r) => {
      l2 || v(r);
    };
    if (typeof e == "string") {
      let r = n !== void 0 ? o.live.incrementalQuery(e, d2, n, s) : o.live.query(e, d2, s);
      return () => {
        l2 = true, r.then(({ unsubscribe: L }) => L());
      };
    } else {
      if (e instanceof Promise) return e.then((r) => {
        l2 || (f.current = r, v(r.initialResults), r.subscribe(s));
      }), () => {
        l2 = true, f.current?.unsubscribe(s);
      };
      if (i) return v(i.initialResults), i.subscribe(s), () => {
        l2 = true, i.unsubscribe(s);
      };
      throw new Error("Should never happen");
    }
  }, [o, n, e, d2, i]), T3 && i ? i.initialResults : u2 && { rows: u2.rows, fields: u2.fields, totalCount: u2.totalCount, offset: u2.offset, limit: u2.limit };
}

more specificly the throw new Error("Should never happen"); - line.

Well, i guess im a magician, that i make the impossible come true.

What could i do wrong? Any help is appreciated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions