Skip to content

[pull] main from expo:main#961

Merged
pull[bot] merged 3 commits into
code:mainfrom
expo:main
Jun 12, 2026
Merged

[pull] main from expo:main#961
pull[bot] merged 3 commits into
code:mainfrom
expo:main

Conversation

@pull

@pull pull Bot commented Jun 12, 2026

Copy link
Copy Markdown

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

hassankhan and others added 3 commits June 12, 2026 19:03
…ng unknown module` (#46870)

# Why

Enabling `asyncRoutes` on Android/iOS breaks every async route in
development with errors like:

```
ERROR  [Error: Requiring unknown module "1237". If you are sure the module exists, try restarting Metro. ...]
```

This is a regression from #46539, which made `asyncRequire` try a
synchronous `importAll()` first, and only fall back to fetching the
split bundle when the import _throws_. This only worked for web; on
native, the catch-based fallback never runs, the split bundle is never
fetched, and the route resolves to `undefined`.

# How

Added a web-only platform check for the behavior introduced in #46539,
and restored the original behavior for native.

# Test Plan

- CI

# Checklist

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)

---------

Co-authored-by: Expo Bot <34669131+expo-bot@users.noreply.github.com>
… safe (#46669)

# Why

Two concurrent renders currently step on each other's font state,
causing issues such as missing `<style id="expo-generated-fonts">`
blocks, missing `<link rel="preload" as="font">` tags, or one page's
fonts appearing on another.

# How

- Per-render font store via `AsyncLocalStorage`, scoped by
`Server.withServerContext(callback)`.
- Both `getStaticContent()` and `getStreamingContent()` use this new
font store.
- `Font.resetServerContext()` has been removed
- Server-side `Font.loadAsync()` outside a scope now throws. Client-side
keeps the existing error swallow for `FontObserver` timeouts (see
#22954).
- Deduplicate by full CSS so `display` (or other CSS-affecting options)
produce unique `@font-face` entries.

# Test Plan

- CI

# Checklist

- [x] I added a `changelog.md` entry and rebuilt the package sources
according to [this short
guide](https://github.com/expo/expo/blob/main/CONTRIBUTING.md#-before-submitting)
- [x] This diff will work correctly for `npx expo prebuild` & EAS Build
(eg: updated a module plugin).
- [ ] Conforms with the [Documentation Writing Style
Guide](https://github.com/expo/expo/blob/main/guides/Expo%20Documentation%20Writing%20Style%20Guide.md)
@pull pull Bot locked and limited conversation to collaborators Jun 12, 2026
@pull pull Bot added the ⤵️ pull label Jun 12, 2026
@pull pull Bot merged commit ff787a5 into code:main Jun 12, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants