~felixmueller would you paste your docker-compose.yml file here, and has anything populated in your database?
Ticket created by ~felixmueller on ~cloutier/bird.makeup
Hi ~cloutier, hi fellows, since I installed the latest two docker builds, I get exceptions when searching for users in the web interface or following or unfollowing users via ActivityPub:
Error when calling remote_follow (e.g. /users/gretathunberg/remote_follow):
birdsitelive | fail: Microsoft. AspNetCore. Diagnostics.ExceptionHandlerMiddleware [1] birdsitelive An unhandled exception has occurred while executing the request. birdsitelive System. NullReferenceException: Object reference not set to an instance of an object. birdsitelive at BirdsiteLive. Controllers. UsersController. Index(String id) in /home/build/bird.makeup/src/BirdsiteLive/Controllers/UsersController.cs:line 147 birdsitelive at Microsoft. AspNetCore. Mvc. Infrastructure. ActionMethodExecutor. TaskOfIActionResultExecutor. Execute (ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Obje ct controller, Object[] arguments) birdsitelive birdsitelive at Microsoft.AspNetCore. Mvc. Infrastructure. ControllerActionInvoker. g__Awaited | 12_0 (ControllerActionInvoker invoker, ValueTask'1 actionResultValueTask) at Microsoft. AspNetCore. Mvc. Infrastructure. ControllerActionInvoker. g__Awaited |10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object stat e, Boolean isCompleted) birdsitelive I birdsitelive birdsitelive birdsitelive birdsitelive at Microsoft. AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealedcontext) at Microsoft.AspNetCore.Mvc. Infrastructure. ControllerActionInvoker. Next (State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft. AspNetCore. Mvc. Infrastructure. ControllerActionInvoker. InvokeInnerFilterAsync () at Microsoft. AspNetCore. Mvc. Infrastructure. ResourceInvoker. g__Awaited |25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isComple ted) birdsitelive I birdsitelive birdsitelive birdsitelive birdsitelive birdsitelive birdsitelive birdsitelive birdsitelive at Microsoft.AspNetCore. Mvc. Infrastructure. ResourceInvoker. Rethrow (ResourceExecutedContextSealed context) at Microsoft. AspNetCore. Mvc. Infrastructure. ResourceInvoker. Next (State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore.Mvc. Infrastructure. ResourceInvoker. InvokeFilterPipelineAsync () at Microsoft. AspNetCore. Mvc. Infrastructure. ResourceInvoker. g__Awaited |17_0 (ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc. Infrastructure. ResourceInvoker. g_ _Awaited |17_0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Routing. EndpointMiddleware. g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware. Invoke (HttpContext context) at Microsoft. AspNetCore. Diagnostics. ExceptionHandlerMiddlewareImpl. g__Awaited 8_0 (ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
Error when following a user:
birdsitelive fail: Microsoft.AspNetCore. Diagnostics. ExceptionHandlerMiddleware [1] birdsitelive An unhandled exception has occurred while executing the request. birdsitelive Microsoft.CSharp.RuntimeBinder.RuntimeBinderException:'BirdsiteLive.ActivityPub.ActivityFollow'doesnotcontainadefinitionfor'object" birdsitelive at CallSite. Target (Closure, CallSite, Object) birdsitelive at BirdsiteLive. Domain. UserService. UndoFollowRequestedAsync (String signature, String method, String path, String queryString, Dictionary 2 requestHeaders, ActivityUndoFollow activity, String body) in /home/build/bird.makeup/src/BirdsiteLive. Domain/UserService.cs:line 239 birdsitelive at BirdsiteLive.Controllers.UsersController.Inbox)in/home/build/bird.makeup/src/BirdsiteLive/Controllers/UsersController.cs:line273 birdsitelive I at Microsoft. AspNetCore. Mvc. Infrastructure. ActionMethodExecutor. TaskOfIActionResultExecutor. Execute (ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Obje ct controller, Object [] arguments) birdsitelive at Microsoft. AspNetCore.Mvc. Infrastructure. ControllerActionInvoker. g_ Awaited|12_0 (ControllerAction Invoker invoker, ValueTask 1 actionResultValueTask) birdsitelive at Microsoft. AspNetCore. Mvc. Infrastructure. ControllerActionInvoker.&__Awaited |10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object stat e, Boolean isCompleted) birdsitelive birdsitelive birdsitelive I at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealedcontext) at Microsoft.AspNetCore.Mvc. Infrastructure. ControllerActionInvoker. Next (State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft.AspNetCore. Mvc. Infrastructure. ControllerActionInvoker. g _Awaited|13_0 (ControllerAction Invoker invoker, Task lastTask, State next, Scope scope, Object state, Bo olean isCompleted) birdsitelive I at Microsoft. AspNetCore. Mvc. Infrastructure. Resource Invoker. g Awaited | 25_0 (ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isComple ted) birdsitelive I birdsitelive birdsitelive at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResourceExecutedContextSealedcontext) at Microsoft.AspNetCore.Mvc. Infrastructure. ResourceInvoker. Next (State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft. AspNetCore. Mvc. Infrastructure. ResourceInvoker. g__Awaited |20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompl eted) birdsitelive birdsitelive birdsitelive birdsitelive I birdsitelive I at Microsoft.AspNetCore. Mvc. Infrastructure. ResourceInvoker. g Awaited | 17 0(ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore.Mvc. Infrastructure. ResourceInvoker. ‹InvokeAsync>g Awaited 17 O(Resourceinvoker invoker, Task task, IDisposable scope) at Microsoft. AspNetCore. Routing. EndpointMiddleware. g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at Microsoft.AspNetCore…Authorization.AuthorizationMiddleware.Invoke(HttpContextcontext) at Microsoft.AspNetCore. Diagnostics. ExceptionHandlerMiddlewareImpl. g_Awaited|8_0(ExceptionHandlerMiddlewareImpl middleware, HttpContext context, Task task)
Error when unfollowing a user:
birdsitelive fail: Microsoft. AspNetCore. Diagnostics. ExceptionHandlerMiddleware [1] birdsitelive birdsitelive An unhandled exception has occurred while executing the request. Microsoft. CSharp.RuntimeBinder.RuntimeBinderException:'BirdsiteLive.ActivityPub.ActivityFollow'doesnotcontainadefinitionfor'object' birdsitelive at CallSite. Target (Closure, CallSite, Object) birdsitelive at BirdsiteLive. Domain. UserService. UndoFollowRequestedAsync (String signature, String method, String path, String queryString, Dictionary 2 requestHeaders, ActivityUndoFollow activity, String body) in /home/build/bird.makeup/src/BirdsiteLive. Domain/UserService.cs:line 239 birdsitelive at BirdsiteLive.Controllers. UsersController. Inbox() in /home/build/bird.makeup/src/BirdsiteLive/Controllers/UsersController.cs: line 273 birdsitelive at Microsoft.AspNetCore. Mvc. Infrastructure.ActionMethod Executor. TaskOfIActionResultExecutor. Execute(ActionContext actionContext, IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Obje ct controller, Object[] arguments) birdsitelive birdsitelive at Microsoft. AspNetCore. Mvc. Infrastructure. ControllerActionInvoker. g_ Awaited|12_0 (ControllerActionInvoker invoker, ValueTask'1 actionResultValueTask) at Microsoft. AspNetCore. Mvc. Infrastructure. ControllerActionInvoker. g__Awaited 10_0ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object stat e, Boolean isCompleted) birdsitelive birdsitelive birdsitelive at Microsoft. AspNetCore. Mvc. Infrastructure. ControllerActionInvoker. Rethrow (ActionExecutedContextSealed context) at Microsoft.AspNetCore.Mvc. Infrastructure. ControllerActionInvoker. Next (State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft. AspNetCore. Mvc. Infrastructure. ControllerActionInvoker. g_ Awaited |13_0 (ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Bo olean isCompleted) birdsitelive I ted) birdsitelive birdsitelive birdsitelive at Microsoft.AspNetCore. Mvc. Infrastructure. ResourceInvoker. g Awaited |25_0 (ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isComple at Microsoft. AspNetCore. Mvc. Infrastructure. Resource Invoker. Rethrow (ResourceExecutedContextSealed context) at Microsoft. AspNetCore.Mvc. Infrastructure. ResourceInvoker. Next (State& next, Scope& scope, Object& state, Boolean& isCompleted) at Microsoft. AspNetCore. Mvc. Infrastructure. ResourceInvoker. g__Awaited |20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompl eted) birdsitelive birdsitelive birdsitelive birdsitelive birdsitelive at Microsoft. AspNetCore. Mvc. Infrastructure. Resource Invoker. g Awaited|17_0 (ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft.AspNetCore. Mvc. Infrastructure. ResourceInvoker. g_ Awaited| 17_0 (ResourceInvoker invoker, Task task, IDisposable scope) at Microsoft. AspNetCore. Routing. EndpointMiddleware. g_AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger) at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context) at Microsoft.AspNetCore. Diagnostics. ExceptionHandlerMiddlewareImpl. g_ _Awaited |8_0(ExceptionHandlerMiddlewareImplmiddleware, HttpContext context, Task task)
I don't see any big changes in the latest commit. Does anyone see the same behavior?
Thanks for any help!
~felixmueller, yes and it's better, less 429… but a lot of
Error retrieving timeline of XYZ; refreshing client
now 😅
Comment by ~felixmueller on ~cloutier/bird.makeup
~davinkevin Have you tried setting the config variable Instance:ParallelTwitterRequests to a lower value than the default of 20? I am using the value 1 and I have no issues with 429 on my small personal instance.
Comment by ~felixmueller on ~cloutier/bird.makeup
~rursache Thank you very much for mirroring! I have 2 questions:
- How can I pull your docker image with docker-compose? The original image is named cloutier/bird.makeup:latest or cloutier/bird.makeup:latest-arm. How is the image specified in your case?
- cloutier provided an arm64 build, which I am using on my low powered arm machine. Could you update your workflow to also publish the "latest-arm" version of the image? Thank you so much!
Thanks ~felixmueller - it seems to happen pretty much immediately for me, though it's tough to tell if the container "recovers" and still is able to consistently pull tweets or not. I do get some tweets sent to my mastodon instance but not sure if I'm missing any.
It looks like this is some rate limiting being done by twitter - assuming that's a change that'll stick I wonder if we just need some rate limiting controls beyond the two "parallel" parameters available today.
Would you be up to share your cron script/job?
Comment by ~felixmueller on ~cloutier/bird.makeup
Hi ~eric-pierce, this happens to me too every now and then. I wrote a cronjob that runs every minute and checks for certain error messages in the log. If it detects for example ‘Response status code does not indicate success‘, it just restarts the container and the errors go away. It seems to work fine for the last 2 days now. Hope it helps.
Comment by ~felixmueller on ~cloutier/bird.makeup
I can confirm that this is fixed now, thank you!
Comment by ~felixmueller on ~cloutier/bird.makeup
Just a quick update:
I installed a current docker build yesterday and it seems that my issue regarding the missing tweets was fixed! My guess is that it had something to to with checkpointing and/or caching. Twitter users with low activity were affected the most. It seems that all tweets are finding their way to my timeline now.
I will continue to keep an eye on it during the next couple of days and will report back if the issue is permanently resolved.
Thank you very much!
Comment by ~felixmueller on ~cloutier/bird.makeup
~perler: no you can't. As ~eric-pierce mentioned, there are some minor differences in the table structure. You have to first let bird.makeup create the tables and then populate the first rows manually. Hope this will be fixed in the future! Thanks a lot ~cloutier!