# 引き継ぎ - `u/admin/alexa_speak` API反映後にUIドロップダウンが変わらない件 > **作成日**: 2026-03-04 > **対象**: `windmill.keinafarm.net` / workspace `admins` > **対象スクリプト**: `u/admin/alexa_speak` > **目的**: 別端末から同じ事象に遭遇しても、原因切り分けと復旧をすぐ実施できるようにする --- ## 1. 事象の概要 `u/admin/alexa_speak` を Windmill API(`create-script`)で更新した直後、 - Scriptタブ上のコードは更新済み - `schema` 上も `device` が `dynselect-device` - しかし Inputフォームは `Device` がテキスト入力のまま(ドロップダウンにならない) という状態になった。 --- ## 2. 当日の時系列(要点) 1. 既存スクリプトを取得し、ローカル `scripts/alexa_speak.ts`(Dynamic Select実装あり)をAPIで反映 2. サーバー再取得で `content` 一致を確認(更新自体は成功) 3. UIを開くと `Device` が入力欄のままで、ドロップダウン化されていない 4. `schema.device` を `format: dynselect-device`, `originalType: DynSelect_device` に更新して再反映 5. それでも UI は直ちには変わらず 6. Windmill UIで `Edit` に入り、`Deploy` を1回実施 7. 直後にドロップダウン表示へ反映 --- ## 3. 確認できた事実 - API反映は成功している(hash更新) - 中間: `a6010687183a199d` - 最終: `318d78f45a084e32` - 最終状態では以下がAPIで確認済み - `schema.properties.device.format = "dynselect-device"` - `schema.properties.device.originalType = "DynSelect_device"` - UI反映は API反映だけでは即時にならず、`Edit -> Deploy` 後に反映された --- ## 4. 想定される原因 Windmill CE 側で、API経由更新時にフォームUIメタ情報(入力ウィジェット解決)の再計算または再適用が即時反映されないケースがある。 実務上は「API更新後にUIで1回Deploy」が回避策として有効。 --- ## 5. 再現時の標準対応手順(Runbook) ### 5.1 APIでスクリプト更新 ```bash cd /home/akira/develop/windmill_workflow ./wm-api.sh get-script u/admin/alexa_speak > /tmp/remote_alexa_speak.json # parent_hash を含む payload を作成して create-script ./wm-api.sh create-script /tmp/alexa_speak_push.json ``` ### 5.2 APIで反映確認 ```bash ./wm-api.sh get-script u/admin/alexa_speak ``` 確認ポイント: - `hash` が更新されている - `content` が想定コードになっている - `schema.properties.device.format` が `dynselect-device` - `schema.properties.device.originalType` が `DynSelect_device` ### 5.3 UI反映されない場合 1. `u/admin/alexa_speak` を最新リビジョンで開く 2. ハードリロード(`Ctrl + Shift + R`) 3. 変化がなければ `Edit -> Deploy` を1回実施 4. Inputフォームの `Device` がドロップダウン化されたことを確認 --- ## 6. 補足(今回の最終状態) - スクリプト: `u/admin/alexa_speak` - 期待UI: - `Device`: ドロップダウン(dynselect) - `Text`: テキスト入力 - 前提: - `alexa_api` コンテナが稼働 - `http://alexa_api:3500/devices` が取得可能 --- ## 7. 引き継ぎメモ - 「API反映成功」と「UIフォーム反映成功」は同時とは限らない - 引き継ぎ時は、必ず以下をセットで確認する 1. APIレスポンスの `hash` と `schema` 2. UI表示(必要なら `Edit -> Deploy`)