glfwJoystickIsGamepad returns false for an Xbox Wireless Controller

When I connect an Xbox Wireless Controller to my computer (running macOS 26), glfwJoystickIsPresent(0) returns true, but glfwJoystickIsGamepad(0) returns false.

Here’s a small test program I wrote which demonstrates the issue:

#include <GLFW/glfw3.h>
#include <cstdlib>
#include <iostream>

int main()
{
	if (!glfwInit()) abort();

	GLFWwindow *window = glfwCreateWindow(640, 480, "GLFW Test", nullptr, nullptr);
	if (!window) abort();

	while (!glfwWindowShouldClose(window)) {
		glfwPollEvents();

		for (int jid = 0; jid <= GLFW_JOYSTICK_LAST; ++jid) {
			if (!glfwJoystickPresent(jid)) {
				continue;
			}

			const char *name = glfwGetJoystickName(jid);
			if (glfwJoystickIsGamepad(jid)) {
				std::cout << "Gamepad " << jid << ": " << name << '\n';
			} else {
				std::cout << "Non-gamepad " << jid << ": " << name << '\n';
			}
		}
	}

	glfwTerminate();
}

When I connect my Xbox Wireless Controller, it starts printing the following line every frame:

Non-gamepad 0: Xbox Wireless Controller

I would expect it to output Gamepad 0: Xbox Wireless Controller.

Am I doing something wrong here? This is just a normal, genuine Xbox Wireless Controller (bought from a reputable electronics reseller), so it would surprise me if it’s not in the game controller database.

OS: macOS 26 Tahoe (I’m not at my Linux machine to test it there for a couple of days)
GLFW version: Tested with 3.4 from Homebrew, 3.4 built from source, and the current master branch

You’ve reported this on Github glfwJoystickIsGamepad returns false for an Xbox Wireless Controller · Issue #2797 · glfw/glfw · GitHub with a workaround so for updates on this issue refer to there. We are currently working on a backlog of issues/PRs so it will be some time before we can get around to resolving this.