Change to system keyboard
Steps to reproduce
- Just start using the keyboard, pressing any key.
What I expected
The EF keyboard keeps running.
What happened instead
The system keyboard just appears and replace the EF keyboard. In order to get back to EF, you need to change the focus to another app, close /open, etc.
It is a random process, so is hard to make a video, but I will try.
Discussion
Sign in to comment or vote.
@icamps when iOS swaps in the system keyboard like that, the EFKey process usually got killed, most often for running out of memory, and iPhone 15 has a much tighter limit for keyboards than newer models. 2.1.3, the next App Store update, cuts memory use a fair bit, but I can't tell yet if that's your case. First check that EFKey → Diagnostics → Performance → "Measure keyboard stalls" is on, it's off by default. Next time it happens, open Diagnostics right away and export the log, and check Settings → Privacy & Security → Analytics & Improvements → Analytics Data for a JetsamEvent or KeyboardExtension file from that minute. The app you were typing in and your keyboard languages would help too.
Here is the info:
The Jetsamevent file: attachment failed!
Here is the content:
{"bug_type":"298","timestamp":"2026-09-27 12:32:19.00 -0300","os_version":"Watch OS 27.0 (24R364)","roots_installed":0,"incident_id":"2A4707A3-B1E6-48BF-9C85-91AD761BC824"}
{
"build" : "Watch OS 27.0 (24R364)",
"product" : "Watch7,2",
"kernel" : "Darwin Kernel Version 27.0.0: Tue Aug 11 20:35:38 PDT 2026; root:xnu-13432.4.5~1/RELEASE_ARM64_T8310",
"incident" : "2A4707A3-B1E6-48BF-9C85-91AD761BC824",
"crashReporterKey" : "cc4955917727aedfdfd78ce6dfe6896ec3b35262",
"date" : "2026-09-27 12:32:19.58 -0300",
"codeSigningMonitor" : 2,
"bug_type" : "298",
"appleIntelligenceStatus" : {"state":"unavailable"},
"timeDelta" : 9,
"memoryStatus" : {
"compressorSize" : 25403,
"compressions" : 12682522,
"decompressions" : 11970261,
"zoneMapCap" : 723845120,
"largestZone" : "vm objects",
"largestZoneSize" : 5406720,
"pageSize" : 16384,
"uncompressed" : 71334,
"zoneMapSize" : 108740608,
"memoryPages" : {
"active" : 37268,
"throttled" : 0,
"fileBacked" : 36619,
"wired" : 22816,
"anonymous" : 37968,
"purgeable" : 953,
"inactive" : 36084,
"free" : 2678,
"speculative" : 1235
}
},
"largestProcess" : "Carousel",
"genCounter" : 0,
"processes" : [
{
"uuid" : "b212cad5-b097-3ced-8c44-392f41c50796",
"states" : [
"daemon",
"idle"
],
"csFlags" : 570434305,
"purgeable" : 0,
"age" : 2773845321860,
"fds" : 25,
"coalition" : 194,
"csTrustLevel" : 9,
"rpages" : 72,
"priority" : 0,
"mem_regions" : 37,
"physicalPages" : {
"internal" : [
0,
64
]
},
"freeze_skip_reason:" : "none",
"pid" : 527,
"cpuTime" : 0.037691000000000002,
"name" : "BlueTool",
"lifetimeMax" : 72
},
{
"uuid" : "0ff8f58b-6365-3ec0-a59a-a65e90af1e80",
"states" : [
"daemon",
"idle"
],
"csFlags" : 570434305,
"purgeable" : 0,
"age" : 2773841793856,
"fds" : 25,
"coalition" : 284,
"csTrustLevel" : 9,
"rpages" : 63,
"priority" : 0,
"mem_regions" : 33,
"physicalPages" : {
"internal" : [
0,
56
]
},
"freeze_skip_reason:" : "none",
"pid" : 529,
"cpuTime" : 0.019428000000000001,
"name" : "nanoregistrylaunchd",
"lifetimeMax" : 63
},
{
"uuid" : "b45d29c3-4748-3a0d-8b7f-f8b3676dd5bc",
"states" : [
"daemon",
"idle"
],
"csFlags" : 570434305,
"purgeable" : 0,
"age" : 2773843645564,
"fds" : 25,
"coalition" : 240,
"csTrustLevel" : 9,
"rpages" : 106,
"priority" : 0,
"mem_regions" : 120,
"physicalPages" : {
"internal" : [
0,
95
]
},
"freeze_skip_reason:" : "none",
"pid" : 528,
"cpuTime" : 0.079688999999999996,
"name" : "CommCenterMobileHelper",
"lifetimeMax" : 114
},
{
"uuid" : "72390453-b6b4-3237-ba51-8ac81cd445f1",
"states" : [
"daemon",
"idle"
],
"csFlags" : 570436361,
"purgeable" : 0,
"age" : 2773839287264,
"fds" : 25,
"coalition" : 330,
"csTrustLevel" : 9,
"rpages" : 87,
"priority" : 0,
"mem_regions" : 45,
"physicalPages" : {
"internal" : [
0,
76
]
},
"freeze_skip_reason:" : "none",
"pid" : 530,
"cpuTime" : 0.050802,
"name" : "cryptexd",
"lifetimeMax" : 87
},
{
"uuid" : "7b68f857-1622-38bc-ba59-9d0c12a49e51",
"states" : [
"daemon",
"idle"
],
"csFlags" : 570434305,
"purgeable" : 0,
"age" : 2773834051079,
"fds" : 25,
"coalition" : 60,
"csTrustLevel" : 9,
"rpages" : 88,
"priority" : 0,
"mem_regions" : 42,
"physicalPages" : {
"internal" : [
0,
79
]
},
"freeze_skip_reason:" : "none",
"pid" : 531,
"cpuTime" : 0.13509599999999999,
"name" : "remoted",
"lifetimeMax" : 90
},
{
"uuid" : "c8cb8d6e-3799-38c8-a560-93b30e583ccf",
"states" : [
"daemon",
"idle"
],
"csFlags" : 570434305,
"purgeable" : 0,
"age" : 2773800608861,
"fds" : 25,
"coalition" : 30,
"csTrustLevel" : 9,
"rpages" : 89,
"priority" : 0,
"mem_regions" : 41,
"physicalPages" : {
"internal" : [
0,
80
]
},
"freeze_skip_reason:" : "none",
"pid" : 541,
"cpuTime" : 0.078392000000
@icamps the file you pasted is from your Apple Watch (it says "Watch OS 27.0" at the top), so it can't show what happened on the phone. On the iPhone the file has the same kind of name, but the first line says "iPhone OS 27"; from that one I only need the entry named KeyboardExtension and the line with "reason" next to it. More useful still: right after the keyboard switches, open EFKey → Diagnostics and export the log, that tells me whether it crashed or iOS killed it for memory.
Hi.
Here is the log file.
@icamps the export shows two different things. Twice iOS closed EFKey for memory (at 63 and 74 MB, your phone allows a keyboard 76), and seven times EFKey was loaded but iOS never put it on screen and showed the system keyboard instead. The next update, 2.2, has a new typing engine that needs a lot less memory once it downloads the data for your three languages, so the first part should go away; if you're on the TestFlight beta, it's already in the current build. The second one is a separate problem I'm still looking into, and an export after a day or two on 2.2 will show me whether it still happens.