Problem with texture arrays

I am having a probelm with some shader code using a texture array.

If I create a texture with the follwoing


  glBindTexture(GL_TEXTURE_2D, c_Textures[RESOLVE]);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
   glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
   glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA16F, GLsizei(c_Width), GLsizei(c_Height),GL_FALSE,GL_RGBA,GL_UNSIGNED_INT,0);
  glFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0,  GL_TEXTURE_2D, c_Textures[RESOLVE], 0);                        

I can add 2 textures together with


#version 420 core
layout(location = 0, index = 0) out vec4 fFragColour;

uniform sampler2DMS     u_BackgroundTexture; 
uniform sampler2D    u_ResolvedColourTexture;


void  main()
{
  ivec2 pos2d = ivec2(gl_FragCoord.xy);
    
  vec4 background = texelFetch(u_BackgroundTexture,pos2d, gl_SampleID);
  vec4 transparentColor = texelFetch(u_ResolvedColourTexture,pos2d,0);

  background  += transparentColor;
  fFragColour = background;
}



If I convert it to a texture array


  glBindTexture(GL_TEXTURE_2D_ARRAY, c_Textures[RESOLVE]);
  glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
  glTexParameteri(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
  glTexParameterf(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
  glTexParameterf(GL_TEXTURE_2D_ARRAY, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
    glTexImage3D(
        GL_TEXTURE_2D_ARRAY, 
        0, 
        GL_RGBA16F, 
        GLsizei(c_Width), 
        GLsizei(c_Height), 
        GLsizei(c_Layers), //depth
        0,  
        GL_RGBA, 
        GL_FLOAT, 
        NULL);


#version 420 core
layout(location = 0, index = 0) out vec4 fFragColour;

uniform sampler2DMS     u_BackgroundTexture; 
uniform sampler2DArray  u_ResolvedColourTexture;

void  main()
{
  ivec2 pos2d = ivec2(gl_FragCoord.xy);
    
  vec4 background = texelFetch(u_BackgroundTexture,pos2d, gl_SampleID);
  vec4 transparentColor = texelFetch(u_ResolvedColourTexture,ivec3(pos2d, 0),0);

  background += transparentColor;
  fFragColour = background;
}

this code generates an opengl invalid operation error

I can display both textures separately; it is only a problem when I try to combine them with some function