Join the Kedro community

Updated 2 months ago

Kedro-viz crashes randomly with JavaScript type error after adding changes to pipeline registry

Hi, I have a weird bug to report, but I'm not sure how to investigate it/debug. After adding some benign changes to pipeline registry, kedro-viz (9.2.0) started to randomly crash with javascript type error at some pipelines (resulting in whole screen going white-blank and needs to refresh). Those are the changes between commits (before commit all works fine, after commit it consistently crashes on some (seemingly somewhat random - the lower the pipe in the list the higher chance to crash) subset of pipelines with uncaught exception). That's the whole diff of the commit:

@@ -79,7 +79,16 @@ def register_pipelines() -> dict[str, Pipeline]:
             group_class, input_schema, pipelines[f"training_{group_class}"], pipelines[f"inference_{group_class}"]
         )
 
-    pipelines = {k: pipelines[k] for k in sorted(pipelines.keys())}  # sorting for kedro-viz selection box
-    pipelines["__default__"] = sum(pipelines[f"training_and_inference_{gc}"] for gc in GROUP_CLASSES)  # type: ignore

+    # pipelines = {k: pipelines[k] for k in sorted(pipelines.keys())}  # sorting for kedro-viz selection box
+    order = ["input", "data", "feature", "fgu", "layer", "pricing", "inference", "training"]
+    pipelines = {
+        k: pipelines[k]
+        for k in sorted(
+            pipelines.keys(),
+            key=lambda x: str(order.index(x.split("_")[0]) if x.split("_")[0] in order else len(order)) + x,
+        )
+    } # reordering pipelines in kedro-viz based on order list
+    pipelines["__default__"] = pipelines["input_na"]

4
E
A
R
34 comments

Hi Artur, Have you tried to check how your pipelines list looks before and after reordering? In other words, does it contain what you expect?

, any ideas on what can cause such a behaviour?

Yes it's what I expect

Before it was lexical order and now it's order as in the list order, and everything else is at the end

I was also confused about ordering dict, as afaik it does not guarantee keeping order

I see, I’m curious whether issue remains if you remove your changes but randomly shuffle the pipelines dict after creation.

This can narrow down the error

Can you share traceback of the javascript error ? Thanks

I was looking at it but it is minified and not really useful, but I can do that

no worries, if u can share what u have on the github bug report. we will try to replicate the error at our end. and reach out if more help is needed. thanks

Uncaught TypeError: e is undefined
    Ri <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    aA/r[n]< <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    aA <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    uA <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    p <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    c <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    h <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    c <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    h <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    c <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    h <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    c <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    gA <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    To <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Ss <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Tl <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    xu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    yu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    gu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    ou <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    uu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Vi <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    iu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    iu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    nu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    No <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Ro <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    p <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    o <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notify <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    cu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notify <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notifyNestedSubs <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    p <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    o <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notify <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    cu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notify <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notifyNestedSubs <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    o <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    d <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    J <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    dispatch <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Ze <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    J <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Wa <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    exports <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    d <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    J <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    dispatch <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Or <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    J <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    onUpdateActivePipeline <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    onChanged <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    MA <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    il <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    ku <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    wu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    wu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    uu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Vi <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    iu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    iu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    nu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    rs <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    onOptionSelected <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    u <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Re <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Ue <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Nn <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Nn <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    jn <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Hn <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    cu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Le <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Hn <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Yt <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Gt <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
main.f9e37320.js:2:4292236
    Ri <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    aA/r[n]< <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    map self-hosted:178
    aA <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    uA <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    p <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    c <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    h <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    c <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    h <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    c <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    h <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    c <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    gA <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    To <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Ss <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Tl <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    xu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    yu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    gu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    ou <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    uu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Vi <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    iu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    (Async: VoidFunction)
    iu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    nu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    No <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Ro <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    p <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    o <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notify <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    cu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notify <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notifyNestedSubs <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    p <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    o <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notify <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    cu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notify <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    notifyNestedSubs <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    o <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    d <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    J <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    dispatch <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Ze <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    J <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Wa <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    exports <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    d <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    J <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    dispatch <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Or <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    AsyncFunctionNext self-hosted:807
    (Async: async)
    J <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    onUpdateActivePipeline <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    onChanged <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    MA <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    il <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    ku <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    wu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    wu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    uu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Vi <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    iu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    (Async: VoidFunction)
    iu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    nu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    rs <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    onOptionSelected <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    u <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Re <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Ue <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Nn <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Nn <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    jn <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Hn <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    cu <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Le <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Hn <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Yt <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>
    Gt <a target="_blank" rel="noopener noreferrer" href="http://127.0.0.1:4141/static/js/main.f9e37320.js:2">http://127.0.0.1:4141/static/js/main.f9e37320.js:2</a>

is this what you asked for?

u r right, this is not helpful. we will have to replicate this error at our end to understand better -- let me know once u have opened the bug report on github and we can start to investigate

do u have idea how I can provide you a more useful error log?

I'll try to DL kedro viz react from npm maybe its not minified

i think we have an idea , it might be related to a bug related to hard coding the '<i>default</i>' pipeline so for now, just the above should be fine. and u don't face this issue in kedro-viz 9.1 right ?

didn't test it on 9.1

yup it works on 9.1.0

so I'm not going to report a bug then, since you know better what's wrong

it will still require some investigation. if u could we can triage it better. thanks 🙂

Hey hey! Coming back to this issue, which is really hard to debug -> Kedro-viz just stops working randomly on some pipelines and just renders a white screen. Doesn't happen at all on 9.1.0 but breaks on 9.2.0 and 10.0.0 unfortunately. Nothing is happening in the terminal, the web console spits out.

main.a2a59735.js:2 
 TypeError: Cannot read properties of undefined (reading 'match')
    at Hi (main.a2a59735.js:2:4364976)
    at main.a2a59735.js:2:4848942
    at Array.map (<anonymous>)
    at LI (main.a2a59735.js:2:4848910)
    at main.a2a59735.js:2:4849263
    at main.a2a59735.js:2:4351469
    at c (main.a2a59735.js:2:4350427)
    at main.a2a59735.js:2:4351602
    at c (main.a2a59735.js:2:4350427)
    at main.a2a59735.js:2:4351568
ds	@	main.a2a59735.js:2
r.callback	@	main.a2a59735.js:2
za	@	main.a2a59735.js:2
xl	@	main.a2a59735.js:2
bl	@	main.a2a59735.js:2
ml	@	main.a2a59735.js:2
(anonymous)	@	main.a2a59735.js:2
Eu	@	main.a2a59735.js:2
uu	@	main.a2a59735.js:2
Vi	@	main.a2a59735.js:2
(anonymous)	@	main.a2a59735.js:2
and
main.a2a59735.js:2 
 Uncaught TypeError: Cannot read properties of undefined (reading 'match')
    at Hi (main.a2a59735.js:2:4364976)
    at main.a2a59735.js:2:4848942
    at Array.map (<anonymous>)
    at LI (main.a2a59735.js:2:4848910)
    at main.a2a59735.js:2:4849263
    at main.a2a59735.js:2:4351469
    at c (main.a2a59735.js:2:4350427)
    at main.a2a59735.js:2:4351602
    at c (main.a2a59735.js:2:4350427)
    at main.a2a59735.js:2:4351568
Hi	@	main.a2a59735.js:2
(anonymous)	@	main.a2a59735.js:2
LI	@	main.a2a59735.js:2
(anonymous)	@	main.a2a59735.js:2
(anonymous)	@	main.a2a59735.js:2
c	@	main.a2a59735.js:2
(anonymous)	@	main.a2a59735.js:2
c	@	main.a2a59735.js:2
(anonymous)	@	main.a2a59735.js:2
c	@	main.a2a59735.js:2
(anonymous)	@	main.a2a59735.js:2
c	@	main.a2a59735.js:2
(anonymous)	@	main.a2a59735.js:2
wo	@	main.a2a59735.js:2
ks	@	main.a2a59735.js:2
wl	@	main.a2a59735.js:2
bu	@	main.a2a59735.js:2
yu	@	main.a2a59735.js:2
Au	@	main.a2a59735.js:2
ou	@	main.a2a59735.js:2
uu	@	main.a2a59735.js:2
Vi	@	main.a2a59735.js:2
(anonymous)	@	main.a2a59735.js:2
We commented out pipeline sorting and __default__ pipeline overwriting to pinpoint the problem. Any ideas?

thanks and sorry you're having a bumpy ride. it's clear that the traceback isn't useful and also that this is a regression from 9.1.0 we should investigate.

can you please open an issue in https://github.com/kedro-org/kedro-viz/issues with the behavior in 9.1.0 vs 9.2.0 ? as well as the output of kedro registry list before and after your registry change

We think that 10.0 introduced a different error than the previous one

Is there a way to provide you with a more descriptive error message? Cloned the kedro-viz repo hoping that I can run it in some kind of a dev mode

and the crashing behavior is inconsistent

Is there a way to provide you with a more descriptive error message? Cloned the kedro-viz repo hoping that I can run it in some kind of a dev mode

?

Hey Kacper, We can quickly jump to call to debug this ?

We replaced toposort with graphlib between 9.1.0 and 9.2.0 perhaps that might be causing the issue.

https://github.com/kedro-org/kedro-viz/pull/1942

More detailed error log coming from kedro-viz in dev mode:

search-utils.js:28  Uncaught TypeError: Cannot read properties of undefined (reading 'match')
    at getHighlightedText (search-utils.js:28:1)
    at node-list-items.js:34:1
    at Array.map (<anonymous>)
    at highlightMatch (node-list-items.js:32:1)
    at node-list-items.js:96:1
    at recomputationWrapper (index.js:67:1)
    at memoized (defaultMemoize.js:123:1)
    at dependenciesChecker (index.js:81:1)
    at memoized (defaultMemoize.js:123:1)
    at dependenciesChecker (index.js:77:1)

console.js:288  The above error occurred in the <NodeListProvider> component:

    at NodeListProvider (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:19467:5">http://localhost:4141/static/js/bundle.js:19467:5</a>)
    at ConnectFunction (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:275443:103">http://localhost:4141/static/js/bundle.js:275443:103</a>)
    at div
    at div
    at Sidebar (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:25109:5">http://localhost:4141/static/js/bundle.js:25109:5</a>)
    at ConnectFunction (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:275443:103">http://localhost:4141/static/js/bundle.js:275443:103</a>)
    at div
    at FlowChartWrapper (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:10030:5">http://localhost:4141/static/js/bundle.js:10030:5</a>)
    at ConnectFunction (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:275443:103">http://localhost:4141/static/js/bundle.js:275443:103</a>)
    at Route (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:278265:29">http://localhost:4141/static/js/bundle.js:278265:29</a>)
    at Switch (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:278434:29">http://localhost:4141/static/js/bundle.js:278434:29</a>)
    at ApolloProvider (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:318559:19">http://localhost:4141/static/js/bundle.js:318559:19</a>)
    at GraphQLProvider (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:22600:5">http://localhost:4141/static/js/bundle.js:22600:5</a>)
    at Router (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:277937:30">http://localhost:4141/static/js/bundle.js:277937:30</a>)
    at BrowserRouter (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:277451:35">http://localhost:4141/static/js/bundle.js:277451:35</a>)
    at div
    at Wrapper (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:30203:5">http://localhost:4141/static/js/bundle.js:30203:5</a>)
    at ConnectFunction (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:275443:103">http://localhost:4141/static/js/bundle.js:275443:103</a>)
    at Provider (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:275169:5">http://localhost:4141/static/js/bundle.js:275169:5</a>)
    at App (<a target="_blank" rel="noopener noreferrer" href="http://localhost:4141/static/js/bundle.js:1590:5">http://localhost:4141/static/js/bundle.js:1590:5</a>)
    at Container

Consider adding an error boundary to your tree to customize error handling behavior.
Visit <a target="_blank" rel="noopener noreferrer" href="https://reactjs.org/link/error-boundaries">https://reactjs.org/link/error-boundaries</a> to learn more about error boundaries.

Somehow a tag has no name which results in node.text becoming undefined and breaking in match function

Hey ,
Are you still facing same error after running kedro run on the problematic pipelines?
if no, Is it the same case for both 9.2.0 and 10.0.0 Kedro-Viz version ?
Let me know if you are still facing the issue, we can connect tomorrow.

I believe it was the same error in 9.2.0 and 10.0.0. As a workaround we just got rid of the tag and it seems to be working, but no idea what's causing it to become undefined

Add a reply
Sign up and join the conversation on Slack