Chrysalis

Troubleshooting

Start with the log. It is in the window where Chrysalis started, in data/logs/chrysalis.log, and behind the Logs button in the Android app.

#A model stops with an error

Generation errors include the provider's message and its raw stop reason when supplied, such as content_filter, refusal or SAFETY. HTTP failures include the status and available response details. Include those details when reporting a problem. A missing reason is reported as missing rather than guessed.

#macOS says Chrysalis cannot be opened, or closes with “killed”

Double-click start.command in the unpacked folder instead of chrysalis. It clears both of the things macOS objects to and then starts Chrysalis. Do it again after each update, since each download is a new folder.

Clearing the download flag on its own is often not enough: on Apple silicon macOS also kills a program whose signature it will not accept, with no dialog and nothing in Terminal but killed. These builds do not carry a signature macOS accepts, so the program has to be signed on your own Mac. That signature grants nothing and identifies no one; it only tells macOS the file is intact.

To do the same by hand, in Terminal in the unpacked folder:

xattr -dr com.apple.quarantine .
codesign --remove-signature chrysalis
codesign --force --sign - chrysalis
./chrysalis

Installing with bun install -g chrysalis-engine avoids all of this.

#Windows says it protected your PC

Click More info, then Run anyway. Windows warns about programs that are not signed with a paid certificate.

It is printed in the window where Chrysalis started and written to data/logs/chrysalis.log. On Docker, run docker compose logs chrysalis. Run chrysalis paths to find the data folder. The link stops working once the first account exists.

#I forgot my password

Stop Chrysalis and run chrysalis reset-password <username>. Admins can also set a new password for other accounts in Settings > Users.

#The port is already in use

Another program, or another copy of Chrysalis, is using port 8788. Close it, or start Chrysalis on another port:

./chrysalis --port 8790

To keep the new port, set port in config.yaml.

#My phone cannot connect

  • Check that Allow other devices on my network is on in Settings > Server.
  • Both devices need to be on the same network. Guest Wi-Fi networks often keep devices apart.
  • Let Chrysalis through the computer's firewall: in Settings > Server, press Allow on this network if it is shown. Windows also asks the first time Chrysalis listens on the network.
  • Chrysalis opens but an app's tab says the page is not loading? That app runs its own program on one of the 16 ports after Chrysalis's own. The same button allows them all.
  • Opening it by a name rather than an IP address? Add that name under Host names. Several names are separated by commas, and *.example.com allows every name under example.com.

#The microphone does not work on my phone

Phones only allow the microphone over HTTPS. See HTTPS for the microphone.

#Android stops Chrysalis in the background

Tap Keep running in the background in the Chrysalis app and allow it. Some phones have their own battery savers on top of Android's; allow Chrysalis there too.

#Android will not install the update

See If Android will not install over the old app.

#An app shows a blank page or an error

  • Ask the agent: "the app shows a blank page, find out why". It can read the app's build errors and the errors the page reported.
  • If it started after a change, ask the agent to put the app back the way it was before that change.

#An app update has conflicts

Nothing has changed yet. Pick Keep mine, Take update or Ask the agent to merge; Updating explains each.

#Still stuck

Ask on the Discord, or open an issue with your version, how you run Chrysalis, and the relevant part of the log.

Edit this page on GitHub