diff --git a/mirai-core-api/src/nativeMain/kotlin/utils/BotConfiguration.kt b/mirai-core-api/src/nativeMain/kotlin/utils/BotConfiguration.kt
index b014970c8..589d385f8 100644
--- a/mirai-core-api/src/nativeMain/kotlin/utils/BotConfiguration.kt
+++ b/mirai-core-api/src/nativeMain/kotlin/utils/BotConfiguration.kt
@@ -329,6 +329,9 @@ public actual open class BotConfiguration { // open for Java
     public actual fun fileBasedDeviceInfo(filepath: String) {
         deviceInfo = {
             val file = MiraiFile.create(workingDir).resolve(filepath)
+            if (!file.exists()) {
+                file.writeText(DeviceInfoManager.serialize(DeviceInfo.random(), json))
+            }
             DeviceInfoManager.deserialize(file.readText(), json)
         }
     }