Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
本番だけWebViewが500エラーになる
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Hayate Kuronuma
September 29, 2026
Programming
54
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
本番だけWebViewが500エラーになる
Hayate Kuronuma
September 29, 2026
More Decks by Hayate Kuronuma
See All by Hayate Kuronuma
ユーザー価値を届け続けるために、ウォンテッドリーが大切にしている文化
hayatekuronuma
0
9
UIKitにSwiftUIを埋め込んだら 罠にハマった話
hayatekuronuma
0
16
Other Decks in Programming
See All in Programming
私なりのハーネスエンジニアリング ~独自の言語処理系の開発を通して~
seosoft
0
170
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.5k
[JA] Domain Modeling with Vanilla Rails: 「操作」から再考するRailsの設計論
yasaichi
4
1.7k
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.1k
そのデザイントークン、Flutterでも同じ見た目になりますか?
nakamizu
0
270
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.1k
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
270
ChromeでローカルLLM
ryu1013
0
190
AI駆動開発4年目の現在地(『あなたはFDEになるべきか?』イベント資料)
kumaiu
0
120
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
1.8k
Event is what happens
moro
2
2.9k
3回つくってわかった、 定期実行ジョブ基盤の本質情報
takai
4
3.6k
Featured
See All Featured
Heart Work Chapter 1 - Part 1
lfama
PRO
10
37k
The Language of Interfaces
destraynor
162
27k
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.7k
The Spectacular Lies of Maps
axbom
PRO
1
1.1k
Optimising Largest Contentful Paint
csswizardry
37
4k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
600
Between Models and Reality
mayunak
4
550
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
540
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
960
Transcript
#25 Mobile勉強会 ウォンテッドリー × チームラボ 本番だけWebViewが500になる Sep.29 2026 - Hayate
Kuronuma © 2026 Wantedly, Inc.
⾃⼰紹介 名前:黒沼 疾風 / Hayate Kuronuma 入社:2025年9月 ポジション: iOSエンジニア 性格診断:コントリビューター
MBTI:ISFP (冒険家) © 2026 Wantedly, Inc.
A⾯B⾯ジェネレーター © 2026 Wantedly, Inc.
起きたこと 本番だけ 500 になる アプリ内 WebView で開くページが、本番でだけエラーページになる。検証環境では再現しない。 © 2026 Wantedly,
Inc.
起きた範囲 Android の本番だけ 500 になる 検証環境 本番 Android 正常 500
iOS 正常 正常 © 2026 Wantedly, Inc.
Androidで起きていたこと Authorization がリダイレクトを越えていた WebView トークン→Cookie ⽬的のページ エンドポイント SSR 上流 API
① loadUrl + Bearer ② 302 + Set-Cookie shouldOverrideUrlLoading 何もせず進める ③ Cookie + Bearer(そのまま持ち越し) ④ Bearer を素通し ⑤ 検証に失敗 ⑥ 500 © 2026 Wantedly, Inc.
検証環境では問題なかったわけ 検証環境は、たまたま助かっていた WebView トークン→Cookie ⽬的のページ エンドポイント SSR 上流 API ①
loadUrl + Bearer ② 302 + Set-Cookie shouldOverrideUrlLoading 検証環境⽤ヘッダに付け替え ③ loadUrl + Basic(Cookie あり、Bearer は消えた) ④ Basic を素通し ⑤ Basic は無視して成功 ⑥ 200 © 2026 Wantedly, Inc.
原因 - Chromiumを⾒てみる 同じドメインの中なら、ヘッダは外されない Android WebView がリダイレクトのたびに呼ぶ処理 ─ aw_url_loader_throttle.cc(抜粋) void
AwURLLoaderThrottle::WillRedirectRequest(...) { bool is_same_domain = net::registry_controlled_domains::SameDomainOrHost( redirect_info->new_url, original_origin_, net::registry_controlled_domains::INCLUDE_PRIVATE_REGISTRIES); if (!is_same_domain) { // The headers we added must be removed. headers_update_params->removed_headers.insert(...); } } 同じドメインの中のリダイレクト → 付けたヘッダを残す © 2026 Wantedly, Inc. 別のドメインへ出るリダイレクト → 付けたヘッダを外す
iOS との違い iOS では起きなかった Android iOS loadUrl(url, headers) load(URLRequest) 同じドメインの中なら、リダイレクトの先にも
ホストが変わる リダイレクトで Authorization 付く。 を落とす。 © 2026 Wantedly, Inc.
直し⽅ 本番でも、ヘッダなしで開き直す WebView トークン→Cookie ⽬的のページ エンドポイント SSR 上流 API ①
loadUrl + Bearer ② 302 + Set-Cookie shouldOverrideUrlLoading ⽌めて読み直す(本番でも) ③ loadUrl(Cookie あり、Bearer は外した) ④ Cookie で問い合わせ ⑤ 成功 ⑥ 200 © 2026 Wantedly, Inc.
まとめ 01 02 03 リダイレクト先にも届く 外すなら、読み直す 環境差分を認識する 同じドメインの中なら、 リダイレクトを⽌めて、必 環境独⾃の設定があり、完
loadUrl のヘッダは外され 要なヘッダだけで loadUrl 全に本番の保証にならない ない。 し直す。 ことがある。 © 2026 Wantedly, Inc.
ご清聴ありがとうございました! © 2026 Wantedly, Inc.