···1-# Known Issues
2-3-## Account migration from bsky.social
4-5-Migrating your account from bsky.social to this PDS works, but Bluesky's appview may not recognize your new signing key. This means you can post and your followers will see it, but some authenticated requests might fail with "jwt signature does not match jwt issuer".
6-7-We've been trying hard to verify that our side is correct (PLC updated, signing keys match, relays have the account) but something about how we're emitting events isn't triggering Bluesky's appview to refresh its identity data. Still investigating.
8-9-No workaround yet.
···1+CREATE TABLE record_blobs (
2+ id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
3+ repo_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
4+ record_uri TEXT NOT NULL,
5+ blob_cid TEXT NOT NULL,
6+ created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
7+ UNIQUE(repo_id, record_uri, blob_cid)
8+);
9+10+CREATE INDEX idx_record_blobs_repo_id ON record_blobs(repo_id);
11+CREATE INDEX idx_record_blobs_blob_cid ON record_blobs(blob_cid);
+3-2
src/api/identity/plc/submit.rs
···222 }
223 }
224 match sqlx::query!(
225- "INSERT INTO repo_seq (did, event_type) VALUES ($1, 'identity') RETURNING seq",
226- did
0227 )
228 .fetch_one(&state.db)
229 .await
···322 import_result.records.len(),
323 did
324 );
00000000000000000000000000325 let key_row = match sqlx::query!(
326 r#"SELECT uk.key_bytes, uk.encryption_version
327 FROM user_keys uk
···322 import_result.records.len(),
323 did
324 );
325+ let mut blob_ref_count = 0;
326+ for record in &import_result.records {
327+ for blob_ref in &record.blob_refs {
328+ let record_uri = format!("at://{}/{}/{}", did, record.collection, record.rkey);
329+ if let Err(e) = sqlx::query!(
330+ r#"
331+ INSERT INTO record_blobs (repo_id, record_uri, blob_cid)
332+ VALUES ($1, $2, $3)
333+ ON CONFLICT (repo_id, record_uri, blob_cid) DO NOTHING
334+ "#,
335+ user_id,
336+ record_uri,
337+ blob_ref.cid
338+ )
339+ .execute(&state.db)
340+ .await
341+ {
342+ warn!("Failed to insert record_blob for {}: {:?}", record_uri, e);
343+ } else {
344+ blob_ref_count += 1;
345+ }
346+ }
347+ }
348+ if blob_ref_count > 0 {
349+ info!("Recorded {} blob references for imported repo", blob_ref_count);
350+ }
351 let key_row = match sqlx::query!(
352 r#"SELECT uk.key_bytes, uk.encryption_version
353 FROM user_keys uk