misskey-dev / misskey

🌎 A completely free and open interplanetary microblogging platform 🚀
https://misskey-hub.net/
GNU Affero General Public License v3.0
10.06k stars 1.37k forks source link

Safari(特にmacOS PWA?)でバージョンアップがコケる(読み込み後に真っ白 or 真っ黒な画面で停止する) #12356

Open tamaina opened 11 months ago

tamaina commented 11 months ago

💡 Summary

Safari(特にmacOS PWA?)のキャッシュがquerystringを無視しているため発生する?

https://misskey.io/notes/9m6iyljn6k
https://github.com/MisskeyIO/misskey/pull/125

js/cssのキャッシュがないのは https://github.com/misskey-dev/misskey/issues/9398 っぽいけど、/のキャッシュが変に残ってしまっているのが原因っぽい

ただのSafariでそのサイトを開くと直る

🥰 Expected Behavior

ちゃんと読み込んでバージョンアップメッセージが表示される

🤬 Actual Behavior

真っ黒 or 真っ白

📝 Steps to Reproduce

  1. Misskeyがバージョンアップされる
  2. macOS PWAを開く

💻 Frontend Environment

* Model and OS of the device(s): 14inch MacBook Pro (2021)
* Browser: Safari PWA
* Server URL: p1.a9z.dev, misskey.io
* Misskey: 2023.11

🛰 Backend Environment (for server admin)

* Installation Method or Hosting Service:
* Misskey:
* Node:
* PostgreSQL:
* Redis:
* OS and Architecture:
tamaina commented 11 months ago

このバグの不思議なところは一旦本物のSafariでサイトを開くと解消する

tamaina commented 11 months ago

よく考えたらioでも発生したので

Safari(特にmacOS PWA?)のキャッシュがquerystringを無視しているため発生する?

は原因として除外されるわね

u1-liquid commented 11 months ago

症状を見た感じ大元のindex.htmlが更新されていない時dockerなど前のjs/cssのリンクが切れてる時と似てる気がする

tamaina commented 11 months ago

何かの拍子でviteのrollupに設定してるinput { app: './src/boot.ts' }がトランスパイルされてないままboot.jsに入ってしまい、APP_IMPORTエラーでフロントエンドが全く動かないことになる現象がある https://misskey.io/notes/9m6j7y5wkd

という情報ももらったけど

一旦本物のSafariでサイトを開くと解消する

の説明がつかないのでこの線もないような

tamaina commented 11 months ago

9398 の件もあるのでSafari PWAはキャッシュがとにかく変だと適当に見当つけてるけど

tamaina commented 11 months ago

症状を見た感じ大元のindex.htmlが更新されていない時dockerなど前のjs/cssのリンクが切れてる時と似てる気がする

まあこれか
(js/cssのキャッシュがないのは #9398 っぽいけど、/のキャッシュが変に残ってしまっている感じかしら

u1-liquid commented 11 months ago

軽くググったらiOSのsafariが古いindex.htmlをずっと表示していて困ってる人たちは一定数いるみたい

sandycorzeta commented 8 months ago

Sorry i'm raising this bug because i still have the problem since Desember update (v2023.12), and yet its not solved on February update (v2024.2.0).

My device is iPhone SE 1st gen and using iOS 15.8.1. When i'm visiting misskey.io and its several custom instance fork (like misskey-square.net), the site is accessible, i can see their misskey version and not throwing up error. Meanwhile, if i visit an instance site that runs with vanilla misskey, i got APP_IMPORT error. The problem doesn't appear to me if i'm using the Safari Desktop on my Mac (as i am on Sonoma). Here are several screenshot for a proof.

Misskey-square 9CA751D0-FC6E-469C-B7AD-71B72C35D6E7_4_5005_c

Misskey.io 2887D617-2B27-4C61-B7CA-A4FCCD4D70EB_4_5005_c

My instance (Misskey.id) just been updated to 2024.2.0 84F1B22D-CEC0-4F29-8530-9A73977E2A42_4_5005_c

u1-liquid commented 8 months ago

未だにこの問題でMisskeyが開かないと言ってるユーザーがたくさんいるので、index.htmlにバージョンの入ったjsを入れるのをやめて、ワンクッション挟ませてからバージョン情報の入ったjsを参照するようにしたいかも

tamaina commented 8 months ago

backendで/vite/app-*.jsにリダイレクトするパスを生やしてそこをいつも参照するようにするとか

tamaina commented 8 months ago

My device is iPhone SE 1st gen and using iOS 15.8.1. When i'm visiting misskey.io and its several custom instance fork (like misskey-square.net), the site is accessible,

misskey-dev/misskey not supports old iOS.

tamaina commented 8 months ago

ワンクッション挟ませてからバージョン情報の入ったjsを参照するようにしたいかも

ワンクッション挟ませたjsやdynamic importのjsがキャッシュされてないと結局失敗に終わる…

u1-liquid commented 8 months ago

永遠に更新されないよりは動く可能性ができたほうがいいんじゃないかな