Can't downgrade OpenGL context version to 4.3

I’m running OpenGL 4.6 on Linux.

I’m trying to set lower version of OpenGL with glfw to develop for that version. I’m setting the context like below but OpenGL still uses version 4.6. Appreciate any help on this.

glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);

I tested the version with:

auto version = glGetString(GL_VERSION);
printf("GL Version: %s\n", version);
auto versionGLSL = glGetString(GL_SHADING_LANGUAGE_VERSION);
printf("GLSL Version: %s\n", versionGLSL);

Platform: Arch Linux x86_64
Window manager: sway
GLFW version: glfw-x11 3.3.8

As per the docs on window and context creation the GLFW_CONTEXT_VERSION_MAJOR and GLFW_CONTEXT_VERSION_MINOR hints set the minimum required version.

See the specs on WGL_ARB_create_context for more detailed information on the Windows context creation (I believe the other OS implementations are the same):

  The attribute names WGL_CONTEXT_MAJOR_VERSION_ARB and
    WGL_CONTEXT_MINOR_VERSION_ARB request an OpenGL context supporting
    the specified version of the API. If successful, the context
    returned must be backwards compatible with the context requested.
    Backwards compatibility is determined as follows:

    If a version less than or equal to 3.0 is requested, the context
    returned may implement any of the following versions:

      * Any version no less than that requested and no greater than 3.0.
      * Version 3.1, if the GL_ARB_compatibility extension is also
        implemented.
      * The compatibility profile of version 3.2 or greater.

    If version 3.1 is requested, the context returned may implement
    any of the following versions:

      * Version 3.1. The GL_ARB_compatibility extension may or may not
        be implemented, as determined by the implementation.
      * The core profile of version 3.2 or greater.

    If version 3.2 or greater is requested, the context returned may
    implement any of the following versions:

      * The requested profile of the requested version.
      * The requested profile of any later version, so long as no
        features have been removed from that later version and profile.

    Querying the GL_VERSION string with glGetString (or the
    GL_MAJOR_VERSION and GL_MINOR_VERSION values with glGetIntegerv, in
    a 3.0 or later context) will return the actual version supported by
    a context.