Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

IllegalArgumentException: Failed to create internal virtual display

Open
#1,985 3 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 2 days

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
18/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Stale
Tech stack
android, kotlin

Research direction

The crash is raised in ScreenSource.start (ScreenSource.kt:76) and reached through StreamBase.startSources and startStream in the encoder library. Read those three spots first, then see what state the MediaProjection setup depends on on Android 15. Reproducing it needs a device like the reporter's Redmi 14C, which the thread does not confirm. Done means the stream starts on that device, or the failure is caught and reported in a clear way.

Written by the indexing model from the issue text.

Description

Describe the bug
The application crashes with an IllegalArgumentException: Failed to create internal virtual display when attempting to start a screen stream. This occurs during the screen capture initialization process on certain devices.

To Reproduce
Steps to reproduce the behavior:

  1. Go to 'Screren broadcast'
  2. Selct 720p, Screen Broadcast and Porttarint
  3. Start Streaming

Crash Report

          Caused by java.lang.IllegalArgumentException: Failed to create internal virtual display
       at com.pedro.encoder.input.sources.video.ScreenSource.start(ScreenSource.kt:76)
       at com.pedro.library.base.StreamBase.startSources(StreamBase.kt:507)
       at com.pedro.library.base.StreamBase.startStream(StreamBase.kt:190)
       at com.atharvasystem.quickscreenrecorder.services.ShareScreenService.startStream(ShareScreenService.kt:206)
       at com.atharvasystem.quickscreenrecorder.ui.streams.StreamSourceActivity.activityResultContract$lambda$0(StreamSourceActivity.kt:131)
       at com.atharvasystem.quickscreenrecorder.ui.streams.StreamSourceActivity.$r8$lambda$LtWeMkLkNKtetOKKVdlgnnLpK3s()
       at com.atharvasystem.quickscreenrecorder.ui.streams.StreamSourceActivity$$ExternalSyntheticLambda1.onActivityResult(D8$$SyntheticClass)
       at androidx.activity.result.ActivityResultRegistry.doDispatch(ActivityResultRegistry.kt:350)
       at androidx.activity.result.ActivityResultRegistry.dispatchResult(ActivityResultRegistry.kt:311)
       at androidx.activity.ComponentActivity.onActivityResult(ComponentActivity.kt:756)
       at androidx.fragment.app.FragmentActivity.onActivityResult(FragmentActivity.java:151)
       at android.app.Activity.onActivityResult(Activity.java:7650)
       at android.app.Activity.internalDispatchActivityResult(Activity.java:9644)
       at android.app.Activity.dispatchActivityResult(Activity.java:9618)
       at android.app.ActivityThread.deliverResults(ActivityThread.java:6355)
       at android.app.ActivityThread.handleSendResult(ActivityThread.java:6411)
       at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:72)
       at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:60)
       at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:186)
       at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:112)
       at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:84)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2917)
       at android.os.Handler.dispatchMessage(Handler.java:107)
       at android.os.Looper.loopOnce(Looper.java:249)
       at android.os.Looper.loop(Looper.java:337)
       at android.app.ActivityThread.main(ActivityThread.java:9531)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:636)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005)
        

Expected behavior
The screen stream should start successfully and begin capturing/streaming the device screen without crashing.

Screenshots
If applicable, add screenshots to help explain your problem.

Smartphone (please complete the following information):
Device: Xiaomi Redmi 14C
OS: Android 15
Media server: Not specified
Class used: ScreenSource (via StreamBase)

Additional context
Device has 2.4 GB free RAM and 173.01 GB free disk space
App version: 6.6 (109)

Dominant language
Kotlin
Stars
3k
Forks
946
Avg merge
4d 6h
Merged PRs (30d)
9

Getting set up

This project ships no dev container, Dockerfile or contributing guide, so setting up is up to you: start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from pedroSG94/RootEncoder

All issues in pedroSG94/RootEncoder

Similar issues

More Kotlin issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.