so even with my awkward setup it wont matter about the websocket. I have my jellyfin running on windows 11 locally in my house. then my wireguard connects that local ip to my vps which runs a static ip as my home internet is a cgnat dynamic ip. which then propegates jellyfin to caddy on my vps. My logs show this

i dont know why neither does jellyfin support. ill have to keep looking i guess. i dont know what else to look for i have looked everywhere for an answer. please leave this thread open for now
edit: a quick reboot of jellyfin gave me the logs.
[2023-05-09 00:00:00.015 -05:00] [INF] [25] Emby.Server.Implementations.ScheduledTasks.TaskManager: "DailyTrigger" fired for task: "Playback Reporting Trim Db"
[2023-05-09 00:00:00.018 -05:00] [INF] [25] Emby.Server.Implementations.ScheduledTasks.TaskManager: Queuing task "TaskCleanDb"
[2023-05-09 00:00:00.019 -05:00] [INF] [22] Emby.Server.Implementations.ScheduledTasks.TaskManager: Executing "Playback Reporting Trim Db"
[2023-05-09 00:00:00.021 -05:00] [INF] [25] Jellyfin.Plugin.PlaybackReporting.TaskCleanDb: Playback Reporting Data Trim
[2023-05-09 00:00:00.023 -05:00] [INF] [25] Jellyfin.Plugin.PlaybackReporting.TaskCleanDb: MaxDataAge : 3
[2023-05-09 00:00:00.025 -05:00] [INF] [25] Jellyfin.Plugin.PlaybackReporting.Data.ActivityRepository: DeleteOldData : "delete from PlaybackActivity where DateCreated < '2023-02-09 00:00:00.0244919'"
[2023-05-09 00:00:00.026 -05:00] [INF] [25] Jellyfin.Plugin.PlaybackReporting.Data.ActivityRepository: Default journal_mode for "C:\ProgramData\Jellyfin\Server\data\playback_reporting.db" is "delete"
[2023-05-09 00:00:00.029 -05:00] [INF] [25] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Playback Reporting Trim Db" Completed after 0 minute(s) and 0 seconds
[2023-05-09 00:00:00.031 -05:00] [INF] [25] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
[2023-05-09 00:00:01.025 -05:00] [INF] [25] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for "Playback Reporting Trim Db" set to fire at 2023-05-10 00:00:00.000 -05:00, which is 23:59:58.9744417 from now.
[2023-05-09 00:00:16.379 -05:00] [WRN] [20] Jellyfin.Server.Middleware.ExceptionMiddleware: The response has already started, the exception middleware will not be executed.
[2023-05-09 00:00:16.382 -05:00] [ERR] [20] Microsoft.AspNetCore.Server.Kestrel: Connection id ""0HMQG98L7GPFU"", Request id ""0HMQG98L7GPFU:00000004"": An unhandled exception was thrown by the application.
System.InvalidOperationException: Response Content-Length mismatch: too many bytes written (20973586 of 20973461).
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.VerifyAndUpdateWrite(Int32 count)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.WritePipeAsync(ReadOnlyMemory`1 data, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpResponseStream.WriteAsync(ReadOnlyMemory`1 source, CancellationToken cancellationToken)
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionBody.WriteAsync(ReadOnlyMemory`1 buffer, CancellationToken cancellationToken)
at Microsoft.AspNetCore.Http.StreamCopyOperationInternal.CopyToAsync(Stream source, Stream destination, Nullable`1 count, Int32 bufferSize, CancellationToken cancel)
at Microsoft.AspNetCore.Internal.FileResultHelper.WriteFileAsync(HttpContext context, Stream fileStream, RangeItemHeaderValue range, Int64 rangeLength)
at Microsoft.AspNetCore.Mvc.Infrastructure.FileResultExecutorBase.WriteFileAsync(HttpContext context, Stream fileStream, RangeItemHeaderValue range, Int64 rangeLength)
at Microsoft.AspNetCore.Mvc.Infrastructure.FileStreamResultExecutor.ExecuteAsync(ActionContext context, FileStreamResult result)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResultFilterAsync>g__Awaited|30_0[TFilter,TFilterAsync](ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.Rethrow(ResultExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.ResultNext[TFilter,TFilterAsync](State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeResultFilters>g__Awaited|28_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeNextResourceFilter>g__Awaited|25_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
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>g__Awaited|20_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Jellyfin.Server.Middleware.ServerStartupMessageMiddleware.Invoke(HttpContext httpContext, IServerApplicationHost serverApplicationHost, ILocalizationManager localizationManager)
at Jellyfin.Server.Middleware.WebSocketHandlerMiddleware.Invoke(HttpContext httpContext, IWebSocketManager webSocketManager)
at Jellyfin.Server.Middleware.IpBasedAccessValidationMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager)
at Jellyfin.Server.Middleware.LanFilteringMiddleware.Invoke(HttpContext httpContext, INetworkManager networkManager, IServerConfigurationManager serverConfigurationManager)
at Microsoft.AspNetCore.Authorization.Policy.AuthorizationMiddlewareResultHandler.HandleAsync(RequestDelegate next, HttpContext context, AuthorizationPolicy policy, PolicyAuthorizationResult authorizeResult)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Jellyfin.Server.Middleware.QueryStringDecodingMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.ReDoc.ReDocMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Jellyfin.Server.Middleware.RobotsRedirectionMiddleware.Invoke(HttpContext httpContext)
at Jellyfin.Server.Middleware.LegacyEmbyRouteRewriteMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.ResponseCompression.ResponseCompressionMiddleware.InvokeCore(HttpContext context)
at Jellyfin.Server.Middleware.ResponseTimeMiddleware.Invoke(HttpContext context, IServerConfigurationManager serverConfigurationManager)
at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
at Jellyfin.Server.Middleware.ExceptionMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.InvokeCore(HttpContext context, PathString matchedPath, PathString remainingPath)
at Jellyfin.Server.Middleware.BaseUrlRedirectionMiddleware.Invoke(HttpContext httpContext, IServerConfigurationManager serverConfigurationManager)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
[2023-05-09 00:00:42.890 -05:00] [INF] [20] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[2023-05-09 00:00:51.686 -05:00] [INF] [10] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "external ip" request
[2023-05-09 00:00:52.794 -05:00] [WRN] [37] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "https://tv.movies4you.stream/Users/3f05512e59184385b46a4f7b338a2ac2/Items/Latest?Limit=30&Fields=PrimaryImageAspectRatio%2CBasicSyncInfo%2CPath&ImageTypeLimit=1&EnableImageTypes=Primary%2CBackdrop%2CThumb&ParentId=fbe927a6b6148a2a499409f0ab66d0f1" to "external ip" in 0:00:00.5392551 with Status Code 200
[2023-05-09 00:00:52.798 -05:00] [WRN] [20] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "https://tv.movies4you.stream/Users/3f05512e59184385b46a4f7b338a2ac2/Items/Latest?Limit=30&Fields=PrimaryImageAspectRatio%2CBasicSyncInfo%2CPath&ImageTypeLimit=1&EnableImageTypes=Primary%2CBackdrop%2CThumb&ParentId=75736ba48263773d0a111c1fd0296056" to "external ip" in 0:00:00.5516922 with Status Code 200
[2023-05-09 00:00:52.803 -05:00] [WRN] [24] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "https://tv.movies4you.stream/Users/3f05512e59184385b46a4f7b338a2ac2/Items/Latest?Limit=30&Fields=PrimaryImageAspectRatio%2CBasicSyncInfo%2CPath&ImageTypeLimit=1&EnableImageTypes=Primary%2CBackdrop%2CThumb&ParentId=c097134ef7f540be0d35418b14d14930" to "external ip" in 0:00:00.5486447 with Status Code 200
[2023-05-09 00:00:52.806 -05:00] [WRN] [58] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "https://tv.movies4you.stream/Users/3f05512e59184385b46a4f7b338a2ac2/Items/Latest?Limit=30&Fields=PrimaryImageAspectRatio%2CBasicSyncInfo%2CPath&ImageTypeLimit=1&EnableImageTypes=Primary%2CBackdrop%2CThumb&ParentId=4d6cab82687be983ba5ed83e06200809" to "external ip" in 0:00:00.5492199 with Status Code 200
[2023-05-09 00:00:52.809 -05:00] [WRN] [40] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "https://tv.movies4you.stream/Users/3f05512e59184385b46a4f7b338a2ac2/Items/Latest?Limit=30&Fields=PrimaryImageAspectRatio%2CBasicSyncInfo%2CPath&ImageTypeLimit=1&EnableImageTypes=Primary%2CBackdrop%2CThumb&ParentId=f9cdacad554183f01638708a9cb1e0a8" to "external ip" in 0:00:00.5542292 with Status Code 200
[2023-05-09 00:00:52.858 -05:00] [WRN] [25] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "https://tv.movies4you.stream/Shows/NextUp?Limit=24&Fields=PrimaryImageAspectRatio%2CDateCreated%2CBasicSyncInfo%2CPath%2CMediaSourceCount&UserId=3f05512e59184385b46a4f7b338a2ac2&ImageTypeLimit=1&EnableImageTypes=Primary%2CBackdrop%2CBanner%2CThumb&EnableTotalRecordCount=false&DisableFirstEpisode=false&NextUpDateCutoff=2022-05-09T05%3A00%3A52.050Z&EnableRewatching=false" to "external ip" in 0:00:00.6116089 with Status Code 200
[2023-05-09 00:00:54.905 -05:00] [INF] [24] Emby.Server.Implementations.Session.SessionWebSocketListener: Sending ForceKeepAlive message to 1 inactive WebSockets.
[2023-05-09 00:01:00.028 -05:00] [INF] [24] Emby.Server.Implementations.ScheduledTasks.TaskManager: "DailyTrigger" fired for task: "Remove Old Sync Data"
[2023-05-09 00:01:00.030 -05:00] [INF] [24] Emby.Server.Implementations.ScheduledTasks.TaskManager: Queuing task "RetentionTask"
[2023-05-09 00:01:00.031 -05:00] [INF] [25] Emby.Server.Implementations.ScheduledTasks.TaskManager: Executing "Remove Old Sync Data"
[2023-05-09 00:01:00.042 -05:00] [INF] [25] Jellyfin.Plugin.KodiSyncQueue.ScheduledTasks.RetentionTask: Retention deletion not possible if retention days is set to zero!
[2023-05-09 00:01:00.043 -05:00] [INF] [25] Emby.Server.Implementations.ScheduledTasks.TaskManager: "Remove Old Sync Data" Completed after 0 minute(s) and 0 seconds
[2023-05-09 00:01:00.045 -05:00] [INF] [25] Emby.Server.Implementations.ScheduledTasks.TaskManager: ExecuteQueuedTasks
[2023-05-09 00:01:00.447 -05:00] [INF] [12] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "external ip" closed
[2023-05-09 00:01:01.042 -05:00] [INF] [36] Emby.Server.Implementations.ScheduledTasks.TaskManager: Daily trigger for "Remove Old Sync Data" set to fire at 2023-05-10 00:01:00.000 -05:00, which is 23:59:58.9573645 from now.
[2023-05-09 00:01:01.261 -05:00] [ERR] [36] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request: "Reading the request body timed out due to data arriving too slowly. See MinRequestBodyDataRate". URL "POST" "/Items/0415bb83962de3dfc8ff17dc564f0862/PlaybackInfo".
[2023-05-09 00:01:01.263 -05:00] [WRN] [36] Jellyfin.Server.Middleware.ResponseTimeMiddleware: Slow HTTP Response from "https://tv.movies4you.stream/Items/0415bb83962de3dfc8ff17dc564f0862/PlaybackInfo?UserId=3f05512e59184385b46a4f7b338a2ac2&StartTimeTicks=5798652700&IsPlayback=true&AutoOpenLiveStream=true&MaxStreamingBitrate=105660377" to "external ip" in 0:00:05.6736621 with Status Code 500
[2023-05-09 00:01:01.378 -05:00] [INF] [24] Emby.Server.Implementations.HttpServer.WebSocketManager: WS "external ip" request