#1.3.2 Causes Seroval Error on Action submit

55 messages ยท Page 1 of 1 (latest)

fresh socket
#

re: @rare basin

Original thread:

1.2.1 works as expected

Stack: Deno & Solid-Start

Dependencies:

"dependencies": {
    "@ark-ui/solid": "^5.32.0",
    "@solidjs/meta": "^0.29.4",
    "@solidjs/router": "^0.15.4",
    "@solidjs/start": "1.3.2",
    "@supabase/ssr": "^0.8.0",
    "@supabase/supabase-js": "2.97.0",
    "dexie": "^4.3.0",
    "solid-js": "^1.9.11"
  },
rare basin
#

can you check _server again? open network tab then trigger the action so that it records properly

fresh socket
#

There's nothing because the Error clears the network state.

Here is the browser URL though:

http://localhost:3000/_server?id=src_forms_actions_save-system-block_ts--saveSystemBlockAction_action&name=%2FUsers%2Fcaseybaggz%2Fgithub%2Fnurl%2Fsanctum%2Fsrc%2Fforms%2Factions%2Fsave-system-block.ts%3Ftsr-directive-use-server%3D&args=%5B%7B%22category%22%3A%22method%22%2C%22categoryPath%22%3A%22resolution.method%22%2C%22checkoutCtx%22%3A%7B%22commit_object%22%3A%7B%22author%22%3A%222bf488d0-f472-4ed0-bb32-7dde23480fcd%22%2C%22created_at%22%3A%222026-02-27T14%3A05%3A58.900Z%22%2C%22repo_root%22%3A%222417b631bc03454ad8ab419f4a22cade553adcdf828b23e76054211d42730c6b%22%7D%2C%22head_commit_hash%22%3A%2299cc4f7c0c3b304343831dcf043adba8fbf1832eaa5a70ecfffcd9a58c680b2d%22%2C%22ref_name%22%3A%22main%22%2C%22ref_slug%22%3A%22main%22%2C%22repo_id%22%3A%2244040e1c-11de-41c1-8a99-53bb28223169%22%2C%22repo_root_content%22%3A%7B%22files%22%3A%7B%2284962d4c-3bb9-4836-b5da-659f0be1a338%22%3A%229210195f015daed56a1b478d40294f9184c3eab8a01165c32299d8ba033f433b%22%2C%22e154bde8-7903-42fb-8073-f9eb55204559%22%3A%22df3ab8151214b282e886977b51fa43599a0ecd5289b2c7114656821f0eb3d91d%22%7D%7D%2C%22repo_root_hash%22%3A%222417b631bc03454ad8ab419f4a22cade553adcdf828b23e76054211d42730c6b%22%2C%22repo_visibility%22%3A%22public%22%7D%2C%22content%22%3A%7B%22definitions%22%3A%7B%22resolution.core%22%3A%22032d556f6617597abe52be836a27e9719a3e38f63f7fe95a066962c3f19ed7c6%22%7D%2C%22extends%22%3A%5B%5D%2C%22metadata%22%3A%7B%22description%22%3A%22%22%2C%22owner%22%3A%22indie-collective%22%2C%22version%22%3A%220.0.0%22%7D%2C%22type%22%3A%22system_root%22%7D%2C%22dataBlockContent%22%3A%7B%22description%22%3A%22Roll+a+die+and+add+bonuses+to+reach+or+exceed+a+target+number.%22%2C%22key%22%3A%22roll_over%22%2C%22label%22%3A%22Roll+Over%22%7D%2C%22params%22%3A%7B%22branch%22%3A%22main%22%2C%22fileId%22%3A%22e154bde8-7903-42fb-8073-f9eb55204559%22%2C%22org%22%3A%22indie-collective%22%2C%22repo%22%3A%22open-source-game%22%7D%2C%22userId%22%3A%222bf488d0-f472-4ed0-bb32-7dde23480fcd%22%7D%5D
rare basin
#

when you switch to 1.3.2, have you tried deleting node_modules @fresh socket

fresh socket
#

Nope. I stopped doing that when I left NPM years ago ๐Ÿ˜‚

But...ya know what...why not. Hang tight.

rare basin
#

ah right you're using deno lol

#

I missed that

#

there's no way for this to happen unless it's pulling old code

fresh socket
#

OK! Let me do it

rare basin
fresh socket
#

Yeah, still the same result after killing and reinstalling deps ๐Ÿ˜ญ

#

Ohhhh, interesting...

#

Does not happen on pure SSR form (outside of a broken route)

#

Does not happen on pure SSR form (inside of broken out route)

#

Does not happen on useAction form (outside of broken out route)

#

Does not happen on useAction form (inside of a broken out route)

#

I was really hoping to migrate everything to .with ๐Ÿ˜ญ

rare basin
#

so it only happens on .with right

fresh socket
#

Seems to be - let me update that form to use useAction and validate

rare basin
#

yes please

#

actually yeah the only time this is bypassed is through form element

#

but still, it should've serialized the with values through the link I shared

fresh socket
#

It works! But...I really want to use .with ๐Ÿ˜‚

#

So, it's definitely just a .with issue

rare basin
#

okay, so .with is the problem. Good, let me try a repro

rare basin
#

but, method="post" works

fresh socket
#

Huh...that's what I was using?

rare basin
#

I'm only able to repro the serialization issue

rare basin
#

on your Form component that is

fresh socket
#

Yurp:

<Form
      action={saveSystemBlockAction.with({
        content: props.content,
        checkoutCtx: props.checkoutCtx,
        params: props.params,
        userId: props.userId,
        category: METHOD,
        categoryPath: `${RESOLUTION}.${METHOD}`,
        dataBlockContent: dataBlockContent(),
      })}
      method="post"
      h="full"
      w="full"
    >
#

That's just a PandaCSS styled form:

export const Form = styled("form");
#

Using a native form still does the same thing

rare basin
#

ah I see

rare basin
rare basin
#

although funnily I think this whole thing on the html is actually ignored, what I'm curious is how the the headers are filled in so that it would be correct

rare basin
#

Okay there shouldn't be a reason this is happening unless:

  • Router lib isn't loaded properly
  • HMR happened and then something something action function cannot be found by the Router
fresh socket
#

Interesting? ๐Ÿค”

According to my history, the project started at:

"@solidjs/meta": "^0.29.4",
"@solidjs/router": "^0.15.0",
"@solidjs/start": "^1.0.10",
"solid-js": "^1.9.3",

We originally were using pnPm but migrated to Deno in the past few months. This is the first time we have ever used the .with function out of the entire history.

I do know there is some weird HMR issues I have started seeing with certain routes once I moved to a Merkle DAG design. Especially once I started reusing query.

So, if a page is deep in the Merkle graph, the more query is (re)used. Only on these deep graph pages does the HMR weird stuff happened.

This is also what I mentioned in the IndexDB thread. I'm working on a re-design that will hopefully consolidate the query. However, I'm starting to wonder if there is an eventual "overload" on the system in cases like this?

For example, this is a realistic scenario:

  • Root parent calls queryMerkleBlob to get root file content
  • Child Layout calls queryMerkleBlob to get root file content (for nav stuff)
  • Child calls queryMerkleBlob to get file content
  • Child of Child calls queryMerkleBlob to get data content from file definition

๐Ÿ‘† This page with the form is lower down the graph which means this is happening in the query Map chain

#

If I save, sometimes its fine, sometimes the route will run all the query and not render any content in the body. If this happens, I refresh and everything is appeared...but, links no longer work. If I navigate out (URL will change - UI will remain the same) - then hit refresh, the correct route appears and now everything is fine to proceed.

rare basin
#

@fresh socket does your action include file uploads

fresh socket
#

Nope. Just a form with a single select for now.

rare basin
fresh socket
#

Yeah. We actually don't do any file uploads in our entire app except one place which is at the top of the route tree (e.g. very, very far away from this form)

fresh socket
#

@rare basin OK, got some more data. with works fine thoughout the app. The only place that is still causing this error is specifically the form referred to in this thread.

This form is the only one that is specifically within a dialog/portal using .with. Any other form rendered in a dialog in the app works fine with either SS form or useAction

Hope that helps the mystery

#

Specifically rendered in an Ark-UI diaog in case that matters (IDK why that would - it's just a Solid Portal)

fresh socket
#

@rare basin .with is working fine in another Dialog form? This is so weird.

  • Both routes share the same initial querys
  • Both routes lazy load the form
  • Both routes use .with in the Dialog
  • Both routes use a shared action

๐Ÿค”

fresh socket
#

IDK why but useAction is working and this is a major blocker to our release so I'm just going to have to move forward with it. Sucks. Major hit on our UX & DX ๐Ÿ˜ญ

rare basin
fresh socket
#

Yeah. I'm using portaled forms throughout the app. I'm not sure why but something in Solid 1 seems to be maxing out in my app which is insteresting.

Only started happening when I switched to the Merkle DAG design which to me doesn't really make sense? But - that's the reality.

This page is heavier on the blob fetching with queries so I'm not sure.

At this point, if I save a file, the HMR will cause the app state to just pause randomly forcing a refresh (only on dev).

Outside of blob-heavy pages like this one, everything is fine.

#

It's only this specific use case with the .with. any other form API works fine so I'm just not sure what to do with that? ๐Ÿคทโ€โ™€๏ธ

#

Anyways, I just can't afford the debugging delay anymore and if useAction works I'll worry about it in 2.0 if it still exists.