今天的事件發生在國外
客戶進行付款的時候失敗
沒想到測試了那麼多次
還是有Bug

先看了一下ELK
沒有系統的Error Log
再仔細看了一下用戶的截圖
發現畫面上的文字
竟然和程式內的多語系檔不一樣
雖然都是葡萄牙文
但仔細一看差了幾個字元

想起來之前有個Bug
就是因為用戶的瀏覽器裝了翻譯外掛
導致行為異常
所以就請同仁再跟客戶溝通
嘗試用無痕或是電腦操作

但後來仔細想想
似乎好像沒那麼單純
照理說有錯誤都會有Log

於是到切到Nginx的ELK查看
果然有兩條500的error log
看起來用戶按了兩次都失敗

正當想說問題是啥時
猛然想起了上次的土耳其語Bug
再看了一下Header的accept-language
果不其然,「es-TW」
不知道是啥奇怪的Culture

這支程式是.net framework
在BeginRequest的時候
會把accept-language轉為.net 的Culture
因為不認識es-TW
所以直接掛掉
用postman帶入一樣的header
就可以輕鬆重現

解決方式也很簡單
如果為不合法的lan
就轉為en-us

對比上次花了將近一個禮拜trace
這次只花了一個小時
也提醒自己如果沒有系統Log
記得去看IIS或是Nginx的Log

下回預告
別人呼叫我的API顯示錯誤
明明帶入正確的參數
Log卻顯示參數為0不合法
難道是因為農曆鬼月?

下一回
Format Error Bug事件