Unexpected color given in StatusBar._updatePropsStack when using PlatformColor for theming
Open
Nobody has claimed this yet.
Component: StatusBar
Issue: Author Provided Repro
- Dominant language
- C++
- Stars
- 127k
- Forks
- 25.3k
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 4
Description
Description
Setting a PlatformColor value as the backgroundColor prop of StatusBar causes an "Unexpected color given in StatusBar._updatePropsStack" error.
Steps to reproduce
- Install and run the application on an Android device or emulator which supports Material You theming with
npm run android - Notice the background colour was appropriately applied to the
Viewdefined in line 27 - Uncomment line 25 (
StatusBar.backgroundColor) - The app throws an "Unexpected color given in StatusBar._updatePropsStack" error
React Native Version
0.76.5
Affected Platforms
Runtime - Android
Output of npx react-native info
System:
OS: macOS 15.1.1
CPU: (8) arm64 Apple M1
Memory: 121.88 MB / 8.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 23.3.0
path: /opt/homebrew/bin/node
Yarn:
version: 1.22.22
path: /opt/homebrew/bin/yarn
npm:
version: 10.9.0
path: /opt/homebrew/bin/npm
Watchman:
version: 2024.11.25.00
path: /opt/homebrew/bin/watchman
Managers:
CocoaPods: Not Found
SDKs:
iOS SDK:
Platforms:
- DriverKit 24.2
- iOS 18.2
- macOS 15.2
- tvOS 18.2
- visionOS 2.2
- watchOS 11.2
Android SDK:
API Levels:
- "28"
- "29"
- "30"
- "31"
- "32"
- "33"
- "34"
- "35"
Build Tools:
- 28.0.3
- 29.0.2
- 30.0.2
- 30.0.3
- 31.0.0
- 33.0.0
- 34.0.0
- 35.0.0
System Images:
- android-24 | Google APIs ARM 64 v8a
- android-24 | Google APIs Intel x86 Atom
- android-24 | Google APIs Intel x86 Atom_64
- android-29 | Google APIs ARM 64 v8a
- android-31 | Google Play ARM 64 v8a
- android-32 | Google Play ARM 64 v8a
- android-S | Google Play ARM 64 v8a
Android NDK: Not Found
IDEs:
Android Studio: 2024.1 AI-241.18034.62.2411.12071903
Xcode:
version: 16.2/16C5032a
path: /usr/bin/xcodebuild
Languages:
Java:
version: 17.0.13
path: /usr/bin/javac
Ruby:
version: 2.7.5
path: /Users/marin/.rvm/rubies/ruby-2.7.5/bin/ruby
npmPackages:
"@react-native-community/cli":
installed: 15.0.1
wanted: 15.0.1
react:
installed: 18.3.1
wanted: 18.3.1
react-native:
installed: 0.76.5
wanted: 0.76.5
react-native-macos: Not Found
npmGlobalPackages:
"*react-native*": Not Found
Android:
hermesEnabled: true
newArchEnabled: true
iOS:
hermesEnabled: Not found
newArchEnabled: false
Stacktrace or Logs
(NOBRIDGE) ERROR Invariant Violation: Unexpected color given in StatusBar._updatePropsStack
Reproducer
https://github.com/Glavotaner/InvariantStatusBar
Screenshots and Videos
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked InvariantStatusBar reproducer and run it with npm run android on a Material You device or emulator. Trace StatusBar._updatePropsStack while PlatformColor is passed as backgroundColor; done means the platform color is accepted without the invariant error and the status bar background is applied.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, react-native
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100