How to fix Bug: Chat history lost after Antigravity update in Antigravity?

Your recent Antigravity update caused most recent chat sessions to disappear, leaving only older ones. You found chat.ChatSessionStore.index in state.vscdb reset to an empty object and the backup overwritten, while protobuf state still lists the missing session UUIDs and titles.

Antigravity chat history missing after update where ChatSessionStore index reset to empty

Hero
You are seeing an empty or near empty chat sidebar after updating Antigravity on macOS. Your local state database shows chat.ChatSessionStore.index equals {"version":1,"entries":{}} in both state.vscdb and state.vscdb.backup, yet protobuf in jetskiStateSync.agentManagerInitState and keys under trajectorySummaries still reference the missing session UUIDs and titles. For a complete checklist of recovery paths beyond this page, see this focused recovery guide for lost conversations in Antigravity.

Solution Overview

AspectDetail
Root CauseA migration during the latest update reset the chat.ChatSessionStore.index entry in the local state database and also overwrote the automatic backup
Primary FixRestore state.vscdb from a snapshot or Time Machine backup that predates the update
ComplexityEasy
Estimated Time10 to 20 minutes

Recover your missing conversations now

Step-by-Step Solution

Step 1 Verify the index was reset and stop Antigravity completely
heart
  • Quit the app
osascript -e 'tell application "Antigravity" to quit' || true
pkill -f Antigravity || true
  • Locate the state database
find "$HOME/Library/Application Support" -type f -name "state.vscdb" 2>/dev/null
Common locations on macOS include:
  • ~/Library/Application Support/Antigravity/User/globalStorage/state.vscdb
  • ~/Library/Application Support/Antigravity/User/globalStorage/state.vscdb.backup
  • Back up your current files before any change
mkdir -p "$HOME/Desktop/antigravity-state-backup"
cp -v "PATH/TO/state.vscdb"* "$HOME/Desktop/antigravity-state-backup/"
  • Inspect the index with sqlite3
sqlite3 "PATH/TO/state.vscdb" "SELECT value FROM ItemTable WHERE key='chat.ChatSessionStore.index';"
If it prints {"version":1,"entries":{}}, the reset occurred.
+1
Step 2 Restore state from Time Machine or a snapshot The fastest and safest recovery is to bring back a state.vscdb from before the update. You can use Finder with Time Machine or use Terminal.
  • List Time Machine local snapshots
tmutil listlocalsnapshots /
  • Restore the file from a dated snapshot path or from your external Time Machine disk to a safe staging folder, then replace the current database
# Example using a mounted Time Machine backup volume
RESTORE="$HOME/Desktop/antigravity-state-restore"
mkdir -p "$RESTORE"

Adjust the source path to the one shown in Time Machine for your Mac

cp -av "/Volumes/Time Machine Backups/Backups.backupdb/MacName/Latest/Macintosh HD - Data/Users/$USER/Library/Application Support/Antigravity/User/globalStorage/state.vscdb" "$RESTORE/"

Replace the live file after backing up

cp -av "$RESTORE/state.vscdb" "PATH/TO/state.vscdb" cp -av "$RESTORE/state.vscdb.backup" "PATH/TO/state.vscdb.backup" 2>/dev/null || true
  • Start Antigravity and confirm your recent sessions reappear
If you do not have Time Machine, check any other system backup or snapshot solution you use. Apple has a helpful overview here: Back up your Mac with Time Machine. If restoration fails, proceed to Alternative Fix 1 to rebuild the index. Step 3 Lock in a clean backup after recovery Once your chats return, create a known good copy for safety.
cp -av "PATH/TO/state.vscdb"* "$HOME/Desktop/antigravity-state-good-$(date +%Y%m%d%H%M%S)/"

Alternative Fixes and Workarounds

Alternative 1 Rebuild ChatSessionStore index from surviving keys with a script Use this when you have no backup. Many installations keep per session artifacts under keys like trajectorySummaries and protobuf entries still reference UUIDs and titles. You can harvest those UUIDs and reconstruct a minimal index value.
  • Inspect related keys
sqlite3 "PATH/TO/state.vscdb" "SELECT key, LENGTH(value) FROM ItemTable WHERE key LIKE 'trajectorySummar%';"
sqlite3 "PATH/TO/state.vscdb" "SELECT key, LENGTH(value) FROM ItemTable WHERE key LIKE 'jetskiStateSync%';"
  • Script to rebuild a minimal index from UUIDs found in the database values
This script is cautious and writes a new file named state.vscdb.patched so you can test it safely. It searches for UUIDs in any value rows where keys include trajectorySummar and then writes a compact JSON index. Titles may be unavailable unless they are embedded as JSON or plain text in those values.
python3 - <<'PY'
import os, re, json, sqlite3, shutil, sys, tempfile

db_path = "PATH/TO/state.vscdb"
patched_path = db_path + ".patched"

uuid_re = re.compile(r"[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[089abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}")

def fetch_rows(conn):
 cur = conn.cursor()
 cur.execute("SELECT key, value FROM ItemTable")
 for k, v in cur.fetchall():
 if isinstance(v, bytes):
 try:
 yield k, v.decode("utf-8", "ignore")
 except Exception:
 continue
 else:
 yield k, str(v)

def current_index(conn):
 cur = conn.cursor()
 cur.execute("SELECT value FROM ItemTable WHERE key='chat.ChatSessionStore.index'")
 row = cur.fetchone()
 return row[0] if row else None

def upsert_index(conn, index_json):
 cur = conn.cursor()
 cur.execute("INSERT INTO ItemTable(key, value) VALUES(?, ?) ON CONFLICT(key) DO UPDATE SET value=excluded.value", ("chat.ChatSessionStore.index", index_json))
 conn.commit()

Copy to a patched file first

shutil.copy2(db_path, patched_path) conn = sqlite3.connect(patched_path) conn.text_factory = bytes # preserve raw uuids = set() titles = {} # best effort discovery of titles inside text blobs for k, text in fetch_rows(conn): for u in uuid_re.findall(text): uuids.add(u) # naive title discovery if values contain patterns like "title":"Some Title" for m in re.finditer(r'"title"\s:\s"([^"]{1,200})"', text): title = m.group(1) # cannot map reliably to uuid here without more structure if not uuids: print("No UUIDs discovered. Exiting with no changes.") sys.exit(1) entries = {} for u in sorted(uuids): entries[u] = {} # minimal entry to get the app to list it again if accepted by schema index_obj = {"version": 1, "entries": entries} index_json = json.dumps(index_obj, separators=(",", ":"), ensure_ascii=False) print("Writing reconstructed index with", len(entries), "entries") upsert_index(conn, index_json) conn.close() print("Patched file created at:", patched_path) print("Now stop Antigravity and replace the live DB with the patched copy after making a backup.") PY
  • Replace the live DB with the patched one after backing up the original
cp -av "PATH/TO/state.vscdb" "PATH/TO/state.vscdb.before-patch"
cp -av "PATH/TO/state.vscdb.patched" "PATH/TO/state.vscdb"
  • Start Antigravity and check if sessions reappear
Note that this is a best effort reconstruction. If the schema requires more fields per entry, this may not fully restore titles or ordering. If it does not work, revert to your backup file and contact support with your preserved databases. If you hit sign in prompts during cloud re sync or repair and are blocked by eligibility checks, see this account not eligible fix. Alternative 2 Resync from cloud by resetting local state If your plan syncs chats to the cloud, a clean resync can rebuild local state.
  • Back up your state.vscdb files as shown above
  • Sign out of Antigravity
  • Remove only the chat index key, not the entire database
sqlite3 "PATH/TO/state.vscdb" "DELETE FROM ItemTable WHERE key='chat.ChatSessionStore.index';"
  • Sign back in and wait for sync to repopulate the index
If you see rate limit or traffic errors during sync, use these steps for high traffic server errors and retry.

Troubleshooting Tips

  • Confirm the database table name
sqlite3 "PATH/TO/state.vscdb" ".schema"
sqlite3 "PATH/TO/state.vscdb" "SELECT name FROM sqlite_schema;"
Look for a simple key value table, often named ItemTable with columns key and value. Reference: sqlite3 Command Line Shell
  • Check the backup file too
sqlite3 "PATH/TO/state.vscdb.backup" "SELECT value FROM ItemTable WHERE key='chat.ChatSessionStore.index';"
If both are empty, rely on backup restoration or the rebuild script.
  • Verify that session UUIDs still exist
sqlite3 "PATH/TO/state.vscdb" "SELECT key, LENGTH(value) FROM ItemTable WHERE key LIKE '%trajectorySummar%';"
strings "PATH/TO/state.vscdb" | egrep -oi "[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[089ab][0-9a-f]{3}-[0-9a-f]{12}" | sort -u | wc -l
A nonzero count improves your chances of a successful rebuild.
  • Never open the database while Antigravity is running
Always quit the app first to avoid write contention or corruption.
  • When in doubt, duplicate before you change
Use Finder or cp -av to snapshot files before every experiment. For more background and recovery patterns that match this exact symptom, see ways to recover lost Antigravity conversations.

Best Practices

  • Turn on regular Time Machine backups so you can always roll back state quickly
  • Before installing major updates, copy state.vscdb and state.vscdb.backup to a safe folder
  • Keep Antigravity closed during system wide updates to reduce migration races
  • After recovery, export important conversations to files where possible
  • Test preview builds in a secondary user profile to protect your main workspace

Final Thought

The quickest reliable fix is to restore state.vscdb from a pre update backup, which brings back the chat index immediately. If you do not have a backup, the rebuild approach can still recover a working index from surviving UUIDs, and a clean cloud resync may also reconstruct your history.

Leave a Comment