Shuffleboard on Mac, starts to load then exits

I am trying to run Shuffleboard on my Mac (so I can display a dashboard while running the simulator). I type "python3 Shuffleboard.py from the wpilib/2023/tools folder and it seems to start initializing correctly, but it gets as far as “Loading CameraServer plugin”, then it pauses for 14 seconds, and then closes with out any error messages.

I have WPILIB 2023.4.3 installed on my Mac, which is running MacOS Ventura 13.2.

If I edit Shuffleboard.py to wait 40 seconds instead of 3 seconds for an error message, I get this error message:

WARNING: Unsupported JavaFX configuration: classes were loaded from 'unnamed module @29428716'
NT: starting network client
Exception in Application init method

If I type …/jdk/bin/java -version from the tools directory, I get this:

openjdk version "17.0.5" 2022-10-18
OpenJDK Runtime Environment Temurin-17.0.5+8 (build 17.0.5+8)
OpenJDK 64-Bit Server VM Temurin-17.0.5+8 (build 17.0.5+8, mixed mode, sharing)

I have tried rebooting my Mac. This did not help.
I tried reinstalling WPILIB. This did not help.
Any suggestions for what to try next?

Can you post the log file in ~/Shuffleboard?

Thanks! I was looking for log files and could not find them. Looking at the log files, it looks like I am getting this error:

Caused by: java.lang.IllegalArgumentException: Component class edu.wpi.first.shuffleboard.api.widget.WidgetType$1 is already registered

In fact, looking in the log files, I see a successful start of shuffleboard on Feb. 27, 2022, but then several failed attempts to start shuffleboard with that same “already registered” on Feb. 28, 2022, on Jan 9, 2023, and today.

Here is the log file from today:

Jul 08, 2023 5:00:55 PM edu.wpi.first.shuffleboard.app.Shuffleboard init
INFO: Build time: 2023-03-29T02:12:00.454273Z
Jul 08, 2023 5:00:55 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loading plugin edu.wpi.first.shuffleboard:Base:1.3.6
Jul 08, 2023 5:00:55 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loaded plugin edu.wpi.first.shuffleboard:Base in 43ms
Jul 08, 2023 5:00:55 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loading plugin edu.wpi.first.shuffleboard:NetworkTables:2.3.2
Jul 08, 2023 5:00:55 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loaded plugin edu.wpi.first.shuffleboard:NetworkTables in 15ms
Jul 08, 2023 5:00:55 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loading plugin edu.wpi.first.shuffleboard:CameraServer:3.1.1
Jul 08, 2023 5:01:10 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loaded plugin edu.wpi.first.shuffleboard:CameraServer in 15324ms
Jul 08, 2023 5:01:10 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader loadPluginJar
INFO: Attempting to load plugin jar: file:///Users/tomjwinter/Shuffleboard/plugins/custom-data-and-widget-2022.424242.4.1-20220227211932.jar
Jul 08, 2023 5:01:10 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loading plugin com.example:SimpleWidgetExample:2019.1.1
Jul 08, 2023 5:01:10 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loaded plugin com.example:SimpleWidgetExample in 0ms
Jul 08, 2023 5:01:10 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader loadPluginJar
INFO: Attempting to load plugin jar: file:///Users/tomjwinter/Shuffleboard/plugins/custom-data-and-widget-2022.424242.4.1-20220227221937-dirty.jar
Jul 08, 2023 5:01:10 PM edu.wpi.first.shuffleboard.app.plugin.PluginLoader load
INFO: Loading plugin com.example:SimpleWidgetExample:2019.1.1
Jul 08, 2023 5:01:10 PM edu.wpi.first.shuffleboard.app.Main lambda$main$0
SEVERE: Uncaught exception on thread `main`.
java.lang.RuntimeException: Exception in Application init method
	at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:896)
	at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:196)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.IllegalArgumentException: Component class edu.wpi.first.shuffleboard.api.widget.WidgetType$1 is already registered
	at edu.wpi.first.shuffleboard.api.widget.Components.register(Components.java:69)
	at edu.wpi.first.shuffleboard.api.widget.Components.register(Components.java:37)
	at java.base/java.lang.Iterable.forEach(Iterable.java:75)
	at edu.wpi.first.shuffleboard.api.util.Registry.registerAll(Registry.java:105)
	at edu.wpi.first.shuffleboard.app.plugin.PluginLoader.load(PluginLoader.java:288)
	at edu.wpi.first.shuffleboard.app.plugin.PluginLoader.loadPluginClass(PluginLoader.java:232)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:357)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
	at edu.wpi.first.shuffleboard.app.plugin.PluginLoader.loadPluginJar(PluginLoader.java:185)
	at edu.wpi.first.shuffleboard.app.plugin.PluginLoader.lambda$loadAllJarsFromDir$1(PluginLoader.java:134)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
	at java.base/java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:395)
	at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
	at java.base/java.util.stream.Sink$ChainedReference.end(Sink.java:258)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:510)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)
	at edu.wpi.first.shuffleboard.app.plugin.PluginLoader.loadAllJarsFromDir(PluginLoader.java:132)
	at edu.wpi.first.shuffleboard.app.Shuffleboard.init(Shuffleboard.java:86)
	at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:825)
	... 2 more

It looks like you have two or more versions of the same custom plugin. Assuming they’re old, I’d just delete them in ~/Shuffleboard/plugins/

1 Like

Thanks a lot! I do remember now that one of our programmers was experimenting with creating a custom plugin for Shuffleboard in 2022. I assume that this was the result of trying to install that plugin on this Mac.

Anyway, I removed all files from the plugins folder and that eliminated the problem. Shuffleboard now runs on this Mac.

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.