package: pari
version: 2.6.2 (git 16006-f55c8ae)


 gp > matdet(Mod(matdiagonal([1,2,3]),4))
  ***   at top-level: matdet(Mod(matdiagon
  ***                 ^--------------------
  *** matdet: impossible inverse in Fl_inv: Mod(2, 4).
  ***   Break loop: type 'break' to go back to GP prompt
break>

the same same problem arises for inverses

gp > Mod([3,1,2;1,2,1;3,1,1],6)^-1
  ***   at top-level: ...od([3,1,2;1,2,1;3,1,1],6)^-1
  ***                                             ^---
  *** _^_: impossible inverse in Fl_inv: Mod(3, 6).
  ***   Break loop: type 'break' to go back to GP prompt
break>

It seems both call Gauss reduction, which is not valid.

(10:49) gp > Mod([3,1,2;1,2,1;3,1,1]^-1,6)
%2 =
[Mod(1, 6) Mod(1, 6) Mod(3, 6)]

[Mod(2, 6) Mod(3, 6) Mod(5, 6)]

[Mod(1, 6) Mod(0, 6) Mod(5, 6)]

-- 
Pascal Molin