As this product becomes more mature, it is important not to break things with the updates.
Updating to "convex": "^1.15.0", caused some cryptic error for me. And I spent some valuable time trying to figure it out. Rolling back and pinning to "convex": "1.14.0" took the error away.
Same for "convex-helpers": "0.1.53", showing some error about no bin. Rolling back to "convex-helpers": "0.1.52", also took that error away. We ideally prefer not to pin packages, and have our CI do automatic updates and run test against them. This broke our CI.
Thank you.
37 Replies
hi @thedevstockgirl . we agree completely. the existing commitment has been that any app built on convex 1.x will continue to work without changes on any other 1.x. aka, we've always maintained backwards compatibility. so it sounds like what you're running into is a plain old bug -- there's no value misalignment here. we'll dig in and see if we can help
however unfortunately this does not apply to convex-helpers. convex helpers is an experimental library that is pre 1.0, and it has the freedom to break. ian (and the rest of us) do our best, but it does not have as much testing, and this commitment isn't firm from convex
we'll be stabilizing parts of convex helpers into a supported 1.x library in convex, but there will probably ~always be new experimental things in parts of convex-helpers, since we iterate on new ideas in there
but still happy to try to help figure out what's going on! might be another easy fix that we've missed somehow
Ok. good to know. The 1.15 did break though. At least for us. Will pin the convex-helpers for now. And only update when we can test locally. Would be great to not have to pin the main convex project.
Thank you
you should not have to pin convex, so happy to try to figure out what went wrong there if you have more details.
Well, did not make much progress. After having others try to debug it, I just decided to roll back. And voila, no more bug.
All I did was pin to. 1.14.
gotcha. looks like perhaps there's a regression in the command line client, or something else. is this on mac?
Yes
thanks. and other developers on the same codebase also have this issue when they update to 1.15?
Yes.
We all use Mac
Just tried 1.14.4. Also, same problem.
But 1.14.0 works
okay. hmm. sorry to hear that, yeah... that should not be happening. gonna escalate this to the eng team right now and see if we can figure something out. we'll report back
Ok. Thanks so much 🙏
Very little changed between 1.14.0 and 1.14.4, thanks for checking 1.14.4, that narrows it down a lot
can you please share a screenshot of the error you saw with convex helpers? we did a release today. i want to see if i can reproduce your error locally
@thedevstockgirl sorry to ask again, but could you confirm this is also an issue with 1.14.4? There are some candidates in 1.15.0 but I don't see much in 1.14.4.
Yes. This was after I installed 1.14.4
@Jordan22 , convex-helpers:
Could you share what this
pnpm dev
package.json script does? wondering if it's something besides the convex dev
what command were you running when you got this warn/error?
@Jordan22 just heard from someone else, the bin thing could be an pnpm-specific issue is reproducible
Just on install
@Tom, the above is run in the api folder
In other folders, we use convex.json with the below:
``` "dev": "concurrently --restart-tries 3 "pnpm:dev:backend" "pnpm:dev:next" --names "backend,next" --prefix-colors green,blue",
"dev:next": "pnpm with-env next dev",
"dev:backend": "pnpm with-env convex dev --tail-logs",
Happen in either api folder when running convex directly.
or in any other folder using the convex.json to simultaneously run convex
@thedevstockgirl does it happen without
--tail-logs
too?I have to install again. And check again. 😦
Let me do that now
sorry about that, really appreciate the help here. I'm trying for a reproduction but I don't have one yet
Weirdly, gone. 😦
Not sure how or why, after installing and re-installing several times.
weird! One way that "filesystem changed during push" can occur is when there's another convex running in the background, because it keeps codegening and the other convex notices the changes
a reason that the version would depend on this is that the codegened files write the version number in the files, so two convex processes running different version try to write different codgened file contents
Ok. I've also seen that several times and been meaning to log a bug. When we control c on a running convex
it keeps going in the background
How can we ensure it is killed on "control c"
That makes a lot of sense
Sometimes this is the thing running convex (e.g.
concurrently
) not forwarding the ctrl-c sigint correctly, but we've also been playing with things that could conceivably be related https://github.com/get-convex/convex-js/commit/9c53aab63017ce5c4ecbc4ec4b1ac6a01fd259fa
that one probably isn't the cause here, but it's the kind of thing that want to make sure we handleOk. Our api folder does not have the concurrently script. And it happens there all the time.
What's the command that runs this here, it's
pnpm dev
running pnpm with-env convex dev
? conceivably it's with-env, we don't test with that — but it might be convex too
oh nevermind, that's pnpm with-env
yes. That just calls dotenv. Should have no impact
Sarah is actively looking into signal handling, maybe she has ideas for this. Helpful to hear it happens all the time, I'll set up a pnpm project and try automating it if I don't get in a a few dozen tries
Ok. Sounds good. Thanks so much for looking into this.
Thanks a bunch for running the experiments
We're working on the convex-helpers thing, looks like a packaging issue where the package.json says the bin is at dist/bin.cjs but it's actually at bin.cjs
Ok. Sounds good. thank you
released convex-helpers 0.1.54 with a working bin for everyone's API generation needs
Awesomeness. Thank you