···1212import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
1313import {postUriToRelativePath, toBskyAppUrl} from '#/lib/strings/url-helpers'
1414import {purgeTemporaryImageFiles} from '#/state/gallery'
1515-import {precacheResolveLinkQuery} from '#/state/queries/resolve-link'
1515+import {
1616+ precacheResolveLinkQuery,
1717+ RQKEY_GIF_ROOT,
1818+ RQKEY_LINK_ROOT,
1919+} from '#/state/queries/resolve-link'
1620import {type EmojiPickerPosition} from '#/view/com/composer/text-input/web/EmojiPicker'
1721import * as Toast from '#/view/com/util/Toast'
1822···120124 if (wasOpen) {
121125 setState(undefined)
122126 purgeTemporaryImageFiles()
127127+ // Purging deletes cached thumbnails on disk, so remove the query
128128+ // caches that may hold references to those now-deleted file paths.
129129+ // Without this, restoring a draft would serve stale ResolvedLink
130130+ // data pointing at missing files, causing "Failed to load blob".
131131+ queryClient.removeQueries({queryKey: [RQKEY_LINK_ROOT]})
132132+ queryClient.removeQueries({queryKey: [RQKEY_GIF_ROOT]})
123133 }
124134125135 return wasOpen