Skip to content

NullPointerException - SponsorBlock's Whitelist channel Feature Causes Crash when Rotating Screen #243

@VoxAndrews

Description

@VoxAndrews

Checklist

  • I am able to reproduce the bug with the latest version.
  • I am not able to reproduce the bug with the latest version of vanilla NewPipe.
  • I made sure that there are no existing issues - open or closed - which I could contribute my information to.
  • I have read the FAQ and my problem isn't listed.
  • I have taken the time to fill in all the required details. I understand that the bug report will be dismissed otherwise.
  • This issue contains only one bug.
  • I have read and understood the vanilla NewPipe contribution guidelines.

Affected version

0.27.7

Steps to reproduce the bug

  1. Open the app
  2. Select any video
  3. Go to the SponsorBlock tab
  4. Switch the Whitelist channel button on
  5. Physically rotate your device into landscape mode

Expected behavior

Normal viewing of the video without any crashes.

Actual behavior

An immediate crash to the Android home screen and a notifications message stating App/UI crashed.

Screenshots/Recordings

screen-20250618-1445002.mp4

Logs

Exception

  • User Action: ui error
  • Request: ACRA report
  • Content Country: AU
  • Content Language: en-GB
  • App Language: en_AU
  • Service: none
  • Timestamp: 2025-06-18T14:00:27.678+08:00
  • Package: org.polymorphicshade.tubular
  • Service: none
  • Version: 0.27.7
  • OS: Linux Android 15 - 35
Crash log

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.schabi.newpipe.extractor.stream.StreamInfo.getUploaderName()' on a null object reference
	at org.schabi.newpipe.fragments.list.sponsorblock.SponsorBlockFragment.onCheckedChanged(SponsorBlockFragment.java:145)
	at android.widget.CompoundButton.setChecked(CompoundButton.java:222)
	at androidx.appcompat.widget.SwitchCompat.setChecked(SwitchCompat.java:1183)
	at android.widget.CompoundButton.onRestoreInstanceState(CompoundButton.java:676)
	at android.view.View.dispatchRestoreInstanceState(View.java:23141)
	at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
	at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
	at android.view.View.restoreHierarchyState(View.java:23119)
	at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:698)
	at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:3176)
	at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3161)
	at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
	at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
	at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
	at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
	at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
	at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
	at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3162)
	at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
	at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
	at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
	at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
	at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
	at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
	at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:263)
	at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:350)
	at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251)
	at org.schabi.newpipe.MainActivity.onStart(MainActivity.java:219)
	at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1765)
	at android.app.Activity.performStart(Activity.java:9045)
	at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4123)
	at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:270)
	at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:250)
	at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:222)
	at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:107)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2666)
	at android.os.Handler.dispatchMessage(Handler.java:107)
	at android.os.Looper.loopOnce(Looper.java:258)
	at android.os.Looper.loop(Looper.java:356)
	at android.app.ActivityThread.main(ActivityThread.java:8837)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:598)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:896)


Exception

  • User Action: ui error
  • Request: ACRA report
  • Content Country: AU
  • Content Language: en-GB
  • App Language: en_AU
  • Service: none
  • Timestamp: 2025-06-18T14:08:43.817+08:00
  • Package: org.polymorphicshade.tubular
  • Service: none
  • Version: 0.27.7
  • OS: Linux Android 15 - 35
Crash log

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.schabi.newpipe.extractor.stream.StreamInfo.getUploaderName()' on a null object reference
	at org.schabi.newpipe.fragments.list.sponsorblock.SponsorBlockFragment.onCheckedChanged(SponsorBlockFragment.java:145)
	at android.widget.CompoundButton.setChecked(CompoundButton.java:222)
	at androidx.appcompat.widget.SwitchCompat.setChecked(SwitchCompat.java:1183)
	at android.widget.CompoundButton.onRestoreInstanceState(CompoundButton.java:676)
	at android.view.View.dispatchRestoreInstanceState(View.java:23141)
	at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
	at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
	at android.view.View.restoreHierarchyState(View.java:23119)
	at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:698)
	at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:3176)
	at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3161)
	at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
	at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
	at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
	at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
	at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
	at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
	at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3162)
	at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
	at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
	at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
	at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
	at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
	at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
	at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:263)
	at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:350)
	at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251)
	at org.schabi.newpipe.MainActivity.onStart(MainActivity.java:219)
	at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1765)
	at android.app.Activity.performStart(Activity.java:9045)
	at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4123)
	at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:270)
	at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:250)
	at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:222)
	at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:107)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2666)
	at android.os.Handler.dispatchMessage(Handler.java:107)
	at android.os.Looper.loopOnce(Looper.java:258)
	at android.os.Looper.loop(Looper.java:356)
	at android.app.ActivityThread.main(ActivityThread.java:8837)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:598)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:896)


Exception

  • User Action: ui error
  • Request: ACRA report
  • Content Country: AU
  • Content Language: en-GB
  • App Language: en_AU
  • Service: none
  • Timestamp: 2025-06-18T14:11:11.604+08:00
  • Package: org.polymorphicshade.tubular
  • Service: none
  • Version: 0.27.7
  • OS: Linux Android 15 - 35
Crash log

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String org.schabi.newpipe.extractor.stream.StreamInfo.getUploaderName()' on a null object reference
	at org.schabi.newpipe.fragments.list.sponsorblock.SponsorBlockFragment.onCheckedChanged(SponsorBlockFragment.java:145)
	at android.widget.CompoundButton.setChecked(CompoundButton.java:222)
	at androidx.appcompat.widget.SwitchCompat.setChecked(SwitchCompat.java:1183)
	at android.widget.CompoundButton.onRestoreInstanceState(CompoundButton.java:676)
	at android.view.View.dispatchRestoreInstanceState(View.java:23141)
	at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
	at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4015)
	at android.view.View.restoreHierarchyState(View.java:23119)
	at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:698)
	at androidx.fragment.app.Fragment.restoreViewState(Fragment.java:3176)
	at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3161)
	at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
	at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
	at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
	at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
	at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
	at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
	at androidx.fragment.app.Fragment.performActivityCreated(Fragment.java:3162)
	at androidx.fragment.app.FragmentStateManager.activityCreated(FragmentStateManager.java:619)
	at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:275)
	at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
	at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
	at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
	at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2952)
	at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:263)
	at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:350)
	at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:251)
	at org.schabi.newpipe.MainActivity.onStart(MainActivity.java:219)
	at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1765)
	at android.app.Activity.performStart(Activity.java:9045)
	at android.app.ActivityThread.handleStartActivity(ActivityThread.java:4123)
	at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:270)
	at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:250)
	at android.app.servertransaction.TransactionExecutor.executeLifecycleItem(TransactionExecutor.java:222)
	at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:107)
	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:81)
	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2666)
	at android.os.Handler.dispatchMessage(Handler.java:107)
	at android.os.Looper.loopOnce(Looper.java:258)
	at android.os.Looper.loop(Looper.java:356)
	at android.app.ActivityThread.main(ActivityThread.java:8837)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:598)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:896)


Affected Android/Custom ROM version

Android 15 (Kernel: 5.10.209-android12-9-00019-g4ea09a298bb4-ab12292661 #1 Wed Aug 28 22:16:09 UTC 2024, Baseband: MPSS.DE.2.0-01026.2-WAIPIO_GEN_PACK-1.90683.1.94136.4) / Nothing OS 3.0 (Build number: Pong-V3.0-250506-1805)

Affected device model

Nothing Phone (2)

Additional information

  • I have Use Developer options turned on, but even when I turned it back off and restarted my phone the crashing still occurred
  • The crashes are occurring due to a NullPointerException regarding the NewPipe API's getUploaderName() function

Metadata

Metadata

Assignees

Labels

👍 plannedOfficially planned for a future release🪲 bugSomething isn't working

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions