/api/iceshrimp/users/{id}/notes returns 500 for valid users
When using the user ID for myself or any other user I get the response
{
"statusCode": 500,
"error": "Internal Server Error",
"message": "The LINQ expression 'DbSet<Note>()\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: n => EF.Property<string>(n, \"UserId\"), \n innerKeySelector: u => EF.Property<string>(u, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Note, User>(\n Outer = o, \n Inner = i\n ))\n .Where(n => n.Inner == __user_0)\n .Where(n => (int)n.Outer.Visibility == 0 || (int)n.Outer.Visibility == 1 && True || True && n.Inner == __user_1 || EF.Property<List<string>>(n.Outer, \"VisibleUserIds\")\n .AsQueryable()\n .Contains(__user_Id_2) || EF.Property<List<string>>(n.Outer, \"Mentions\")\n .AsQueryable()\n .Contains(__user_Id_2) || (int)n.Outer.Visibility == 2 && DbSet<Following>()\n .Where(f => EF.Property<string>(n.Inner, \"Id\") != null && object.Equals(\n objA: EF.Property<string>(n.Inner, \"Id\"), \n objB: EF.Property<string>(f, \"FolloweeId\")))\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: f => EF.Property<string>(f, \"FollowerId\"), \n innerKeySelector: u0 => EF.Property<string>(u0, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Following, User>(\n Outer = o, \n Inner = i\n ))\n .Select(f => f.Inner)\n .Contains(__user_1) || n.Outer.ReplyUserId == __user_Id_2)\n .LeftJoin(\n inner: DbSet<Note>(), \n outerKeySelector: n => EF.Property<string>(n.Outer, \"RenoteId\"), \n innerKeySelector: n0 => EF.Property<string>(n0, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<TransparentIdentifier<Note, User>, Note>(\n Outer = o, \n Inner = i\n ))\n .Where(n => !(DbSet<Blocking>()\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: b => EF.Property<string>(b, \"BlockeeId\"), \n innerKeySelector: u1 => EF.Property<string>(u1, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Blocking, User>(\n Outer = o, \n Inner = i\n ))\n .Where(b => b.Inner == __user_3)\n .Select(b => b.Outer.BlockerId)\n .Concat(DbSet<Blocking>()\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: b0 => EF.Property<string>(b0, \"BlockerId\"), \n innerKeySelector: u2 => EF.Property<string>(u2, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Blocking, User>(\n Outer = o, \n Inner = i\n ))\n .Where(b0 => b0.Inner == __user_3)\n .Select(b0 => b0.Outer.BlockeeId))\n .Contains(n.Outer.Outer.UserId)) && !(DbSet<Blocking>()\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: b1 => EF.Property<string>(b1, \"BlockeeId\"), \n innerKeySelector: u3 => EF.Property<string>(u3, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Blocking, User>(\n Outer = o, \n Inner = i\n ))\n .Where(b1 => b1.Inner == __user_3)\n .Select(b1 => b1.Outer.BlockerId)\n .Concat(DbSet<Blocking>()\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: b2 => EF.Property<string>(b2, \"BlockerId\"), \n innerKeySelector: u4 => EF.Property<string>(u4, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Blocking, User>(\n Outer = o, \n Inner = i\n ))\n .Where(b2 => b2.Inner == __user_3)\n .Select(b2 => b2.Outer.BlockeeId))\n .Contains(n.Outer.Outer.RenoteUserId)) && !(DbSet<Blocking>()\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: b3 => EF.Property<string>(b3, \"BlockeeId\"), \n innerKeySelector: u5 => EF.Property<string>(u5, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Blocking, User>(\n Outer = o, \n Inner = i\n ))\n .Where(b3 => b3.Inner == __user_3)\n .Select(b3 => b3.Outer.BlockerId)\n .Concat(DbSet<Blocking>()\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: b4 => EF.Property<string>(b4, \"BlockerId\"), \n innerKeySelector: u6 => EF.Property<string>(u6, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Blocking, User>(\n Outer = o, \n Inner = i\n ))\n .Where(b4 => b4.Inner == __user_3)\n .Select(b4 => b4.Outer.BlockeeId))\n .Contains(n.Outer.Outer.ReplyUserId)) && n.Inner == null || !(DbSet<Blocking>()\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: b5 => EF.Property<string>(b5, \"BlockeeId\"), \n innerKeySelector: u7 => EF.Property<string>(u7, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Blocking, User>(\n Outer = o, \n Inner = i\n ))\n .Where(b5 => b5.Inner == __user_3)\n .Select(b5 => b5.Outer.BlockerId)\n .Concat(DbSet<Blocking>()\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: b6 => EF.Property<string>(b6, \"BlockerId\"), \n innerKeySelector: u8 => EF.Property<string>(u8, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Blocking, User>(\n Outer = o, \n Inner = i\n ))\n .Where(b6 => b6.Inner == __user_3)\n .Select(b6 => b6.Outer.BlockeeId))\n .Contains(n.Inner.RenoteUserId)) && EF.Property<List<string>>(n.Outer.Outer, \"Mentions\")\n .AsQueryable()\n .All(p1 => !(DbSet<Blocking>()\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: b7 => EF.Property<string>(b7, \"BlockerId\"), \n innerKeySelector: u9 => EF.Property<string>(u9, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Blocking, User>(\n Outer = o, \n Inner = i\n ))\n .Where(b7 => b7.Inner == __user_3)\n .Select(b7 => b7.Outer.BlockeeId)\n .Contains(p1))))\n .LeftJoin(\n inner: DbSet<Note>(), \n outerKeySelector: n => EF.Property<string>(n.Outer.Outer, \"ReplyId\"), \n innerKeySelector: n1 => EF.Property<string>(n1, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<Note, User>, Note>, Note>(\n Outer = o, \n Inner = i\n ))\n .LeftJoin(\n inner: DbSet<User>(), \n outerKeySelector: n => EF.Property<string>(n.Inner, \"UserId\"), \n innerKeySelector: u10 => EF.Property<string>(u10, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<Note, User>, Note>, Note>, User>(\n Outer = o, \n Inner = i\n ))\n .LeftJoin(\n inner: DbSet<User>(), \n outerKeySelector: n => EF.Property<string>(n.Outer.Outer.Inner, \"UserId\"), \n innerKeySelector: u11 => EF.Property<string>(u11, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<Note, User>, Note>, Note>, User>, User>(\n Outer = o, \n Inner = i\n ))\n .LeftJoin(\n inner: DbSet<Note>(), \n outerKeySelector: n => EF.Property<string>(n.Outer.Outer.Outer.Inner, \"RenoteId\"), \n innerKeySelector: n2 => EF.Property<string>(n2, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<Note, User>, Note>, Note>, User>, User>, Note>(\n Outer = o, \n Inner = i\n ))\n .LeftJoin(\n inner: DbSet<User>(), \n outerKeySelector: n => EF.Property<string>(n.Inner, \"UserId\"), \n innerKeySelector: u12 => EF.Property<string>(u12, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<TransparentIdentifier<Note, User>, Note>, Note>, User>, User>, Note>, User>(\n Outer = o, \n Inner = i\n ))\n .OrderByDescending(n => ((IEntity)n.Outer.Outer.Outer.Outer.Outer.Outer.Outer.WithPrecomputedVisibilities(\n reply: n.Outer.Outer.Outer.Outer.Inner != null && (int)n.Outer.Outer.Outer.Outer.Inner.Visibility == 0 || (int)n.Outer.Outer.Outer.Outer.Inner.Visibility == 1 && True || True && n.Outer.Outer.Outer.Inner == __user_4 || EF.Property<List<string>>(n.Outer.Outer.Outer.Outer.Inner, \"VisibleUserIds\")\n .AsQueryable()\n .Contains(__user_Id_5) || EF.Property<List<string>>(n.Outer.Outer.Outer.Outer.Inner, \"Mentions\")\n .AsQueryable()\n .Contains(__user_Id_5) || (int)n.Outer.Outer.Outer.Outer.Inner.Visibility == 2 && DbSet<Following>()\n .Where(f0 => EF.Property<string>(n.Outer.Outer.Outer.Inner, \"Id\") != null && object.Equals(\n objA: EF.Property<string>(n.Outer.Outer.Outer.Inner, \"Id\"), \n objB: EF.Property<string>(f0, \"FolloweeId\")))\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: f0 => EF.Property<string>(f0, \"FollowerId\"), \n innerKeySelector: u13 => EF.Property<string>(u13, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Following, User>(\n Outer = o, \n Inner = i\n ))\n .Select(f0 => f0.Inner)\n .Contains(__user_4) || n.Outer.Outer.Outer.Outer.Inner.ReplyUserId == __user_Id_5, \n renote: n.Outer.Outer.Outer.Outer.Outer.Inner != null && (int)n.Outer.Outer.Outer.Outer.Outer.Inner.Visibility == 0 || (int)n.Outer.Outer.Outer.Outer.Outer.Inner.Visibility == 1 && True || True && n.Outer.Outer.Inner == __user_4 || EF.Property<List<string>>(n.Outer.Outer.Outer.Outer.Outer.Inner, \"VisibleUserIds\")\n .AsQueryable()\n .Contains(__user_Id_5) || EF.Property<List<string>>(n.Outer.Outer.Outer.Outer.Outer.Inner, \"Mentions\")\n .AsQueryable()\n .Contains(__user_Id_5) || (int)n.Outer.Outer.Outer.Outer.Outer.Inner.Visibility == 2 && DbSet<Following>()\n .Where(f1 => EF.Property<string>(n.Outer.Outer.Inner, \"Id\") != null && object.Equals(\n objA: EF.Property<string>(n.Outer.Outer.Inner, \"Id\"), \n objB: EF.Property<string>(f1, \"FolloweeId\")))\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: f1 => EF.Property<string>(f1, \"FollowerId\"), \n innerKeySelector: u14 => EF.Property<string>(u14, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Following, User>(\n Outer = o, \n Inner = i\n ))\n .Select(f1 => f1.Inner)\n .Contains(__user_4) || n.Outer.Outer.Outer.Outer.Outer.Inner.ReplyUserId == __user_Id_5, \n renoteRenote: n.Outer.Outer.Outer.Outer.Outer.Inner != null && n.Outer.Inner != null && (int)n.Outer.Inner.Visibility == 0 || (int)n.Outer.Inner.Visibility == 1 && True || True && n.Inner == __user_4 || EF.Property<List<string>>(n.Outer.Inner, \"VisibleUserIds\")\n .AsQueryable()\n .Contains(__user_Id_5) || EF.Property<List<string>>(n.Outer.Inner, \"Mentions\")\n .AsQueryable()\n .Contains(__user_Id_5) || (int)n.Outer.Inner.Visibility == 2 && DbSet<Following>()\n .Where(f2 => EF.Property<string>(n.Inner, \"Id\") != null && object.Equals(\n objA: EF.Property<string>(n.Inner, \"Id\"), \n objB: EF.Property<string>(f2, \"FolloweeId\")))\n .Join(\n inner: DbSet<User>(), \n outerKeySelector: f2 => EF.Property<string>(f2, \"FollowerId\"), \n innerKeySelector: u15 => EF.Property<string>(u15, \"Id\"), \n resultSelector: (o, i) => new TransparentIdentifier<Following, User>(\n Outer = o, \n Inner = i\n ))\n .Select(f2 => f2.Inner)\n .Contains(__user_4) || n.Outer.Inner.ReplyUserId == __user_Id_5)).Id)' could not be translated. Either rewrite the query in a form that can be translated, or switch to client evaluation explicitly by inserting a call to 'AsEnumerable', 'AsAsyncEnumerable', 'ToList', or 'ToListAsync'. See https://go.microsoft.com/fwlink/?linkid=2101038 for more information.",
"requestId": "..."
}
Component: Web API
Target version: v2024.1-beta1
State: Untriaged → Triaged
State: Triaged → Fixed
Released in version: v2024.1-beta1
Released in version: v2024.1-beta1
Released in version: v2024.1-beta1
Project
Iceshrimp.NETPriority
NormalN
Type
BugB
State
FixedF
Assignee
Laura HausmannSubsystem
BackendB
Component
Web APIW
Affected version
UnknownTarget version
v2024.1-beta1V
Released in version
v2024.1-beta1V