mojira.dev
MC-253779

Protocol URL clickEvents silently fail when used

The bug

When a JSON text segment that has a clickEvent attached to it with the open_url action with a target that is a URL with a protocol other than http(s), clicking on it won't open the URL. Instead, an error is logged:

[18:36:24] [Render thread/ERROR]: Can't open url for ClickEvent{action=OPEN_URL, value='notable://command/debug.version'}
java.net.URISyntaxException: Unsupported protocol: notable: notable://command/debug.version
	at ekq.a(SourceFile:340) ~[minecraft-1.19.1-pre2-client.jar:?]
	at ejk.a(SourceFile:228) ~[minecraft-1.19.1-pre2-client.jar:?]
	at efa.b(SourceFile:94) ~[minecraft-1.19.1-pre2-client.jar:?]
	at ekq.a(SourceFile:490) ~[minecraft-1.19.1-pre2-client.jar:?]
	at efa.a(SourceFile:94) ~[minecraft-1.19.1-pre2-client.jar:?]
	at efa.c(SourceFile:165) ~[minecraft-1.19.1-pre2-client.jar:?]
	at aye.execute(SourceFile:103) ~[minecraft-1.19.1-pre2-client.jar:?]
	at efa.b(SourceFile:165) ~[minecraft-1.19.1-pre2-client.jar:?]
	at org.lwjgl.glfw.GLFWMouseButtonCallbackI.callback(GLFWMouseButtonCallbackI.java:36) [lwjgl-glfw-3.2.2.jar:build 10]
	at org.lwjgl.system.JNI.invokeV(Native Method) ~[lwjgl-3.2.2.jar:build 10]
	at org.lwjgl.glfw.GLFW.glfwPollEvents(GLFW.java:3101) [lwjgl-glfw-3.2.2.jar:build 10]
	at com.mojang.blaze3d.systems.RenderSystem.flipFrame(SourceFile:196) [minecraft-1.19.1-pre2-client.jar:?]
	at dyz.e(SourceFile:310) [minecraft-1.19.1-pre2-client.jar:?]
	at eez.f(SourceFile:1202) [minecraft-1.19.1-pre2-client.jar:?]
	at eez.e(SourceFile:765) [minecraft-1.19.1-pre2-client.jar:?]
	at net.minecraft.client.main.Main.a(SourceFile:244) [minecraft-1.19.1-pre2-client.jar:?]
	at net.minecraft.client.main.Main.main(SourceFile:51) [minecraft-1.19.1-pre2-client.jar:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
	at org.multimc.impl.OneSixLauncher.invokeMain(OneSixLauncher.java:104) [NewLaunch.jar:?]
	at org.multimc.impl.OneSixLauncher.launchWithMainClass(OneSixLauncher.java:175) [NewLaunch.jar:?]
	at org.multimc.impl.OneSixLauncher.launch(OneSixLauncher.java:185) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.listen(EntryPoint.java:127) [NewLaunch.jar:?]
	at org.multimc.EntryPoint.main(EntryPoint.java:57) [NewLaunch.jar:?]

Steps to reproduce

You may have to change the protocol URL to match an app installed on your PC.

  1. Send a message using /tellraw: /execute as @p run tellraw @s [{"text":"Open Notable and display its version","color":"yellow","clickEvent": {"action":"open_url","value": "notable://command/debug.version"}}]

  2. Click on the message you just sent
    → ❌ The URL is not opened, i.e. Notable does not open

  3. Open the same protocol URL at the command line: xdg-open notable://command/debug.version (or use your browser's address bar)
    → ✔ The URL is opened correctly, proving that it is valid

Linked issues

Comments 2

Discovered while testing MC-253762

Relates to MC-48969 (which describes missing protocols, i.e. malformed URLs)

MMK21

(Unassigned)

Confirmed

Social Interactions

1.19.1 Pre-release 2

Retrieved