ISH-336
Created by pancakes
2 years ago
May 20 2024, 13:14 GMT+2
Updated by Laura Hausmann
2 years ago
Jun 29 2024, 01:27 GMT+2
/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": "..."
}
Project
Iceshrimp.NET
Priority
Normal
N
Type
Bug
B
State
Fixed
F
Assignee
Laura Hausmann
Avatar
Subsystem
Backend
B
Component
Web API
W
Affected version
Unknown
Target version
v2024.1-beta1
V
Released in version
v2024.1-beta1
V