<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[General Discussion]]></title><description><![CDATA[Connect with other community members to discuss CIAM, architecture, app development, and more.]]></description><link>https://fusionauth.io/community/forum/category/2</link><generator>RSS for Node</generator><lastBuildDate>Sat, 17 Oct 2026 06:22:54 GMT</lastBuildDate><atom:link href="https://fusionauth.io/community/forum/category/2.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 29 Sep 2026 19:13:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Upgrade from 1.62.0 to 1.69.2 fails to authorize &#x2F;oauth2&#x2F;token requests with a 400]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3876">@chatteberg</a> I just saw your post. If you have a paid support plan you can <a href="https://account.fusionauth.io/account/support/" rel="nofollow ugc">open a ticket</a>. If you do not have a paid support plan, are you still experiencing the issue?</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3242/upgrade-from-1-62-0-to-1-69-2-fails-to-authorize-oauth2-token-requests-with-a-400</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3242/upgrade-from-1-62-0-to-1-69-2-fails-to-authorize-oauth2-token-requests-with-a-400</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Tue, 29 Sep 2026 19:13:14 GMT</pubDate></item><item><title><![CDATA[CI&#x2F;CD Deployment of FusionAuth with Automatic Registration]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3841">@nikola</a> Have you checked out our <a href="https://fusionauth.io/docs/get-started/download-and-install/development/kickstart#set-your-license-id" rel="nofollow ugc">kickstarts</a> or <a href="https://fusionauth.io/docs/apis/reactor" rel="nofollow ugc">APIs</a>? You should be able to apply the license keys and configure your environments as needed.</p>
<p dir="auto">If this isn't what you mean, please just give me a little more detail on what you are trying to do and I'll help the best I can.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3137/ci-cd-deployment-of-fusionauth-with-automatic-registration</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3137/ci-cd-deployment-of-fusionauth-with-automatic-registration</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Mon, 22 Jun 2026 10:18:30 GMT</pubDate></item><item><title><![CDATA[Upgrading 1.64.1 to 1.65.0 never boots]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2507">@mark-robustelli</a> I haven't tested it again since, but I build a docker image using the base fusionauth image (fusionauth/fusionauth-app) because I have a custom plugin and kickstart file.<br />
So my upgrade process is simply to update the base fusionauth image in my dockerfile, and then update my container in Azure. This has worked fine since 1.56, and updated through all the updates with migrations.<br />
Edit: I just noticed that the downloaded schemas does contain a migration for 1.65, and running it on the database does make the container start now. Would have expected this migration to run on start up like the other updates though.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3131/upgrading-1-64-1-to-1-65-0-never-boots</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3131/upgrading-1-64-1-to-1-65-0-never-boots</guid><dc:creator><![CDATA[mqwirtnuf]]></dc:creator><pubDate>Fri, 08 May 2026 10:31:27 GMT</pubDate></item><item><title><![CDATA[Applications data is not displayed in the admin UI details view in versions later than 1.60.2]]></title><description><![CDATA[<p dir="auto">Thank you for letting us know.</p>
<p dir="auto">This is an open issue. To see when this is resolved, you can follow along with the github issue here: <a href="https://github.com/FusionAuth/fusionauth-issues/issues/3439" rel="nofollow ugc">https://github.com/FusionAuth/fusionauth-issues/issues/3439</a></p>
]]></description><link>https://fusionauth.io/community/forum/topic/3128/applications-data-is-not-displayed-in-the-admin-ui-details-view-in-versions-later-than-1-60-2</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3128/applications-data-is-not-displayed-in-the-admin-ui-details-view-in-versions-later-than-1-60-2</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Mon, 04 May 2026 10:26:14 GMT</pubDate></item><item><title><![CDATA[OIDC Certificate vs. Secret]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3209">@tschlegel</a></p>
<p dir="auto">Yes, there's currently no support for using a certificate.</p>
<p dir="auto">Here's an open tracking issue: <a href="https://github.com/FusionAuth/fusionauth-issues/issues/3083" rel="nofollow ugc">https://github.com/FusionAuth/fusionauth-issues/issues/3083</a></p>
<p dir="auto">Please comment and/or upvote this with any other details that would help the product team prioritize this.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3108/oidc-certificate-vs-secret</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3108/oidc-certificate-vs-secret</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Wed, 08 Apr 2026 15:02:06 GMT</pubDate></item><item><title><![CDATA[Tenant Roles and Delegation Questions]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3666">@batmysta</a> Going to link to <a href="https://fusionauth.io/community/forum/topic/3101/minimum-role-needed-to-edit-specific-tenant-settings">this issue</a>.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3102/tenant-roles-and-delegation-questions</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3102/tenant-roles-and-delegation-questions</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Thu, 26 Mar 2026 00:37:05 GMT</pubDate></item><item><title><![CDATA[Minimum Role Needed to Edit Specific Tenant Settings]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3666">@batmysta</a> I know this is a bit of a "trick" answer, but the reality is the right answer depends on what exactly you want the user to have access for. I understand that the roles in FusionAuth may give more access than you may like (I.E. MFA is a tenant level settings, but there is no role just for MFA edit.), but there are some other options.</p>
<p dir="auto">Again, depending on what you want to do and what version you are running, there is the idea of the <a href="https://fusionauth.io/docs/lifecycle/manage-users/tenant-manager" rel="nofollow ugc">Tenant Manager</a> applicaiton.  This will still not help you with MFA settings thought.</p>
<p dir="auto">The other option is using the APIs. Since everything in The FusionAuth admin UI is API first, you could create your own application that would allow users you choose to edit them.</p>
<p dir="auto">Hope this is useful.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3101/minimum-role-needed-to-edit-specific-tenant-settings</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3101/minimum-role-needed-to-edit-specific-tenant-settings</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Tue, 24 Mar 2026 07:34:08 GMT</pubDate></item><item><title><![CDATA[SAML authnRequest exception]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2507">@mark-robustelli</a> cheers, that was a useful post. The IAMShowcase tools did help me filter out what was correct and what was not. Eventually I found that the compression config settings on the passed request were not correct.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3097/saml-authnrequest-exception</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3097/saml-authnrequest-exception</guid><dc:creator><![CDATA[james.hudson]]></dc:creator><pubDate>Thu, 19 Feb 2026 15:40:16 GMT</pubDate></item><item><title><![CDATA[Weird behavior for OpenID connect login after 1.62 upgrade - MS prompts to verify email]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2507">@mark-robustelli</a> I just upgraded to 1.64, still happens, exact same behavior</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3096/weird-behavior-for-openid-connect-login-after-1-62-upgrade-ms-prompts-to-verify-email</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3096/weird-behavior-for-openid-connect-login-after-1-62-upgrade-ms-prompts-to-verify-email</guid><dc:creator><![CDATA[scottw]]></dc:creator><pubDate>Wed, 18 Feb 2026 12:09:33 GMT</pubDate></item><item><title><![CDATA[Admin UI actions over themes blocks application since 1.61.2]]></title><description><![CDATA[<p dir="auto">Hi <a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2507">@mark-robustelli</a></p>
<p dir="auto">I’ve been investigating the issue over the last few weeks.</p>
<p dir="auto">Having taken a JVM dump while the issue was occurring, here is the stack trace for the thread causing the deadlock</p>
 {
   "tid": "8820",
   "name": "HTTP client [\/[0:0:0:0:0:0:0:1]:50154]",
   "stack": [
      "java.base\/jdk.internal.misc.Unsafe.park(Native Method)",
      "java.base\/java.lang.VirtualThread.parkOnCarrierThread(VirtualThread.java:677)",
      "java.base\/java.lang.VirtualThread.parkNanos(VirtualThread.java:648)",
      "java.base\/java.lang.System$2.parkVirtualThread(System.java:2652)",
      "java.base\/jdk.internal.misc.VirtualThreads.park(VirtualThreads.java:67)",
      "java.base\/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:408)",
      "java.base\/sun.nio.ch.Poller.pollIndirect(Poller.java:137)",
      "java.base\/sun.nio.ch.Poller.poll(Poller.java:102)",
      "java.base\/sun.nio.ch.Poller.poll(Poller.java:87)",
      "java.base\/sun.nio.ch.NioSocketImpl.park(NioSocketImpl.java:175)",
      "java.base\/sun.nio.ch.NioSocketImpl.timedRead(NioSocketImpl.java:280)",
      "java.base\/sun.nio.ch.NioSocketImpl.implRead(NioSocketImpl.java:304)",
      "java.base\/sun.nio.ch.NioSocketImpl.read(NioSocketImpl.java:346)",
      "java.base\/sun.nio.ch.NioSocketImpl$1.read(NioSocketImpl.java:796)",
      "java.base\/java.net.Socket$SocketInputStream.read(Socket.java:1099)",
      "java.base\/java.io.BufferedInputStream.fill(BufferedInputStream.java:291)",
      "java.base\/java.io.BufferedInputStream.read1(BufferedInputStream.java:347)",
      "java.base\/java.io.BufferedInputStream.implRead(BufferedInputStream.java:420)",
      "java.base\/java.io.BufferedInputStream.read(BufferedInputStream.java:399)",
      "java.base\/sun.net.www.http.ChunkedInputStream.fastRead(ChunkedInputStream.java:244)",
      "java.base\/sun.net.www.http.ChunkedInputStream.read(ChunkedInputStream.java:698)",
      "java.base\/java.io.FilterInputStream.read(FilterInputStream.java:119)",
      "java.base\/sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(HttpURLConnection.java:3677)",
      "java.base\/java.io.BufferedInputStream.read1(BufferedInputStream.java:345)",
      "java.base\/java.io.BufferedInputStream.implRead(BufferedInputStream.java:420)",
      "java.base\/java.io.BufferedInputStream.read(BufferedInputStream.java:405)",
      "com.inversoft.rest.JSONResponseHandler$BetterBufferedInputStream.read(JSONResponseHandler.java:127)",
      "com.fasterxml.jackson.core.json.UTF8StreamJsonParser._loadMore(UTF8StreamJsonParser.java:220)",
      "com.fasterxml.jackson.core.json.UTF8StreamJsonParser._loadMoreGuaranteed(UTF8StreamJsonParser.java:2457)",
      "com.fasterxml.jackson.core.json.UTF8StreamJsonParser._finishString2(UTF8StreamJsonParser.java:2540)",
      "com.fasterxml.jackson.core.json.UTF8StreamJsonParser._finishAndReturnString(UTF8StreamJsonParser.java:2520)",
      "com.fasterxml.jackson.core.json.UTF8StreamJsonParser.getText(UTF8StreamJsonParser.java:294)",
      "com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:42)",
      "com.fasterxml.jackson.databind.deser.std.StringDeserializer.deserialize(StringDeserializer.java:11)",
      "com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:137)",
      "com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:302)",
      "com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:169)",
      "com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:137)",
      "com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:302)",
      "com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:169)",
      "com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeNoNullChecks(CollectionDeserializer.java:501)",
      "com.fasterxml.jackson.databind.deser.std.CollectionDeserializer._deserializeFromArray(CollectionDeserializer.java:358)",
      "com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:245)",
      "com.fasterxml.jackson.databind.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:29)",
      "com.fasterxml.jackson.databind.deser.impl.FieldProperty.deserializeAndSet(FieldProperty.java:137)",
      "com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:302)",
      "com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:169)",
      "com.fasterxml.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:342)",
      "com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4971)",
      "com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3924)",
      "com.inversoft.rest.JSONResponseHandler.apply(JSONResponseHandler.java:68)",
      "com.inversoft.rest.RESTClient.go(RESTClient.java:430)",
      "io.fusionauth.client.FusionAuthClient.searchThemes(FusionAuthClient.java:5372)",
      "io.fusionauth.app.action.admin.theme.IndexAction.lambda$search$0(IndexAction.java:52)",
      "io.fusionauth.client.LambdaDelegate.execute(LambdaDelegate.java:58)",
      "io.fusionauth.app.action.admin.theme.IndexAction.search(IndexAction.java:52)",
      "io.fusionauth.app.action.admin.BaseSearchAction.execute(BaseSearchAction.java:77)",
      "java.base\/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)",
      "java.base\/java.lang.reflect.Method.invoke(Method.java:580)",
      "org.primeframework.mvc.util.ReflectionUtils.invoke(ReflectionUtils.java:443)",
      "org.primeframework.mvc.action.DefaultActionInvocationWorkflow.execute(DefaultActionInvocationWorkflow.java:77)",
      "org.primeframework.mvc.action.DefaultActionInvocationWorkflow.perform(DefaultActionInvocationWorkflow.java:60)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.message.DefaultMessageWorkflow.perform(DefaultMessageWorkflow.java:50)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.validation.DefaultValidationWorkflow.perform(DefaultValidationWorkflow.java:45)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.security.DefaultSecurityWorkflow.perform(DefaultSecurityWorkflow.java:79)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.parameter.DefaultPostParameterWorkflow.perform(DefaultPostParameterWorkflow.java:49)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.content.DefaultContentWorkflow.perform(DefaultContentWorkflow.java:74)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.parameter.DefaultParameterWorkflow.perform(DefaultParameterWorkflow.java:58)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.parameter.DefaultURIParameterWorkflow.perform(DefaultURIParameterWorkflow.java:92)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.scope.DefaultScopeRetrievalWorkflow.perform(DefaultScopeRetrievalWorkflow.java:50)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.action.DefaultActionMappingWorkflow.perform(DefaultActionMappingWorkflow.java:130)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.security.DefaultSavedRequestWorkflow.perform(DefaultSavedRequestWorkflow.java:65)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.cors.CORSFilter.doFilter(CORSFilter.java:188)",
      "org.primeframework.mvc.cors.CORSRequestWorkflow.perform(CORSRequestWorkflow.java:66)",
      "org.primeframework.mvc.workflow.SubWorkflowChain.continueWorkflow(SubWorkflowChain.java:50)",
      "org.primeframework.mvc.workflow.DefaultMVCWorkflow.perform(DefaultMVCWorkflow.java:109)",
      "org.primeframework.mvc.PrimeMVCRequestHandler.handle(PrimeMVCRequestHandler.java:76)",
      "io.fusionauth.http.server.internal.HTTPWorker.run(HTTPWorker.java:183)",
      "java.base\/java.lang.VirtualThread.run(VirtualThread.java:329)"
   ]
 }

<p dir="auto">I enabled trace logging in io.fusionauth.http.server.internal to analyse the process in HTTPWorker</p>
2026-03-12 03:53:18.758 PM TRACE io.fusionauth.http.server.internal.HTTPWorker - [993] Running HTTP worker. Block while we wait to read the preamble
2026-03-12 03:53:18.758 PM TRACE io.fusionauth.http.server.internal.HTTPWorker - [993] Set state [Process]. Call the request handler.
2026-03-12 03:53:18.773 PM TRACE io.fusionauth.http.server.internal.HTTPWorker - [993] Handler completed successfully
2026-03-12 03:53:18.773 PM TRACE io.fusionauth.http.server.internal.HTTPWorker - [993] Enter Keep-Alive state [KeepAlive] Reset socket timeout [60000].
2026-03-12 03:53:18.773 PM TRACE io.fusionauth.http.server.internal.HTTPWorker - [993] Running HTTP worker. Block while we wait to read the preamble
2026-03-12 03:53:18.775 PM TRACE io.fusionauth.http.server.internal.HTTPWorker - [993] Set state [Process]. Call the request handler.
2026-03-12 03:53:18.776 PM TRACE io.fusionauth.http.server.internal.HTTPWorker - [993] Handler completed successfully
2026-03-12 03:53:18.776 PM TRACE io.fusionauth.http.server.internal.HTTPWorker - [993] Enter Keep-Alive state [KeepAlive] Reset socket timeout [60000].
2026-03-12 03:53:18.776 PM TRACE io.fusionauth.http.server.internal.HTTPWorker - [993] Running HTTP worker. Block while we wait to read the preamble
2026-03-12 03:53:18.777 PM TRACE io.fusionauth.http.server.internal.HTTPWorker - [993] Set state [Process]. Call the request handler.
2026-03-12 03:53:19.977 PM TRACE io.fusionauth.http.server.internal.HTTPServerThread - [993] Check worker in state [Write]
2026-03-12 03:53:21.978 PM TRACE io.fusionauth.http.server.internal.HTTPServerThread - [993] Check worker in state [Write]
2026-03-12 03:53:23.979 PM TRACE io.fusionauth.http.server.internal.HTTPServerThread - [993] Check worker in state [Write]
...
...
2026-03-12 03:55:54.019 PM TRACE io.fusionauth.http.server.internal.HTTPServerThread - [993] Check worker in state [Write]
2026-03-12 03:55:56.019 PM DEBUG io.fusionauth.http.server.internal.HTTPServerThread - [993] Check worker in state [Write] writingSlow=[true] writeThroughput=[16271] minimumWriteThroughput=[16384]
2026-03-12 03:55:56.019 PM DEBUG io.fusionauth.http.server.internal.HTTPServerThread - [993] Closing connection readingSlow=[false] writingSlow=[true] timedOut=[false]  Min write throughput [16384], actual throughput [16271].
2026-03-12 03:55:56.019 PM DEBUG io.fusionauth.http.server.internal.HTTPServerThread - [993] Closing client connection [/127.0.0.1:36278] due to inactivity
2026-03-12 03:55:56.021 PM TRACE io.fusionauth.http.server.internal.HTTPServerThread - Thread dump from server side.
2026-03-12 03:55:56.024 PM DEBUG io.fusionauth.http.server.internal.HTTPWorker - [993] Closing socket. The socket was closed by a client, proxy or otherwise.

<p dir="auto">The HTTPWorker begins the process of reading and writing the response for the request, and continues for 2.6 minutes until the HTTPServerThread terminates it because the minimumWriteThroughput (16KB/sec) threshold has not been met.</p>
<p dir="auto">HTTPServerCleanerThread kills the server-side connection mid-response due to a write throughput check that measures average bytes/sec since the first socket write.<br />
The client is waiting for data that the server is generating very slowly.</p>
<p dir="auto">Analyzing why the server is writing so slowly (16271 bytes/sec):<br />
The call is <a href="http://localhost:9012" rel="nofollow ugc">http://localhost:9012</a> — FusionAuth calls itself. Client and server virtual threads share the same JVM's carrier thread pool.<br />
With Kubernetes CPU limit = 1000m, JDK 21 uses UseContainerSupport (default), so availableProcessors() = 1 → only 1 carrier thread.</p>
<p dir="auto">com.inversoft.rest.JSONResponseHandler$BetterBufferedInputStream.read(byte[], int, int) is synchronized — causes virtual thread carrier thread pinning in JDK 21.</p>

Client virtual thread enters synchronized read() → calls ChunkedInputStream.fastRead() → calls socket.read() which blocks → PINS the carrier thread (can't unmount from synchronized block)
Server virtual thread needs to write more data but cannot get a carrier thread (carrier thread pinned by client)
Neither makes progress → throughput decays over time as numberOfBytesWritten is fixed but elapsed keeps growing

<p dir="auto">BetterBufferedInputStream.read() pins that single carrier thread while blocking on ChunkedInputStream.fastRead(), leaving no carrier thread for the server to write more data. The resulting ping-pong limits throughput to ~16 KB/sec on a 2.5MB response.</p>
<p dir="auto">HTTPServerCleanerThread computes average throughput since the very first write (not a recent window). With 2.5MB written at 16271 bytes/sec average, that's ~156 seconds (2.6 min) before the average decays below the 16384 bytes/sec threshold.</p>
<p dir="auto">With 9 themes, the response is small enough to fit entirely within the kernel’s socket buffer (~128KB). The server writes the entire content in one go without blocking on socket.write() (the buffer does not fill up), transitions to the KeepAlive state, and the cleaner can no longer terminate the connection due to write throughput.</p>
<p dir="auto">As a workaround, I resolved the issue <strong>increasing the Kubernetes CPU limit from 1000m to 1050m</strong>.<br />
Kubernetes translates the CPU limit into the container’s cgroups, setting 2 carrier threads instead of 1.</p>
<p dir="auto">With that CPU limit, all themes are recovered properly, also with 35 themes (~6.2 MB response).</p>
<p dir="auto">Can you reproduce it setting Kubernetes CPU limit to 1000m (1 core) in your environment?</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3092/admin-ui-actions-over-themes-blocks-application-since-1-61-2</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3092/admin-ui-actions-over-themes-blocks-application-since-1-61-2</guid><dc:creator><![CDATA[david.cuen]]></dc:creator><pubDate>Thu, 22 Jan 2026 17:23:53 GMT</pubDate></item><item><title><![CDATA[Prometheus is dropping samples with duplicate timestamps]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3709">@dalamenona</a> We had the same error with Prometheus.<br />
The following opened FusionAuth issue contains information about the topic</p>
<p dir="auto"><a href="https://github.com/FusionAuth/fusionauth-issues/issues/3082" rel="nofollow ugc">https://github.com/FusionAuth/fusionauth-issues/issues/3082</a></p>
<p dir="auto">Best regards.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3079/prometheus-is-dropping-samples-with-duplicate-timestamps</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3079/prometheus-is-dropping-samples-with-duplicate-timestamps</guid><dc:creator><![CDATA[david.cuen]]></dc:creator><pubDate>Tue, 09 Dec 2025 07:47:54 GMT</pubDate></item><item><title><![CDATA[Interpreting FusionAuth&#x27;s Prometheus metrics]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3709">@dalamenona</a> I see your point about the Database_primary_pool_MaxConnections being set to 20 on the value for usage being reported above that. Browsing around the web, I came across something that said Database_primary_pool_Usage is over the lifetime of the application, but can't seem to find the source now. You also make a valid point about around the other data defenitions. It may make sense to do a deeper dive into <a href="https://github.com/brettwooldridge/HikariCP?tab=readme-ov-file#spike-demand-pool-comparison" rel="nofollow ugc">HikariCP</a> sources in general.  There may be some answers there.</p>
<p dir="auto">Anyone here familiar with these numbers?</p>
<p dir="auto">It may also make sense for you to <a href="https://github.com/fusionauth/fusionauth-issues/issues" rel="nofollow ugc">open an issue</a> with FusionAuth as it is not clear to me if these numbers are coming from FusionAuth or HikariCP.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3077/interpreting-fusionauth-s-prometheus-metrics</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3077/interpreting-fusionauth-s-prometheus-metrics</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Fri, 05 Dec 2025 08:51:47 GMT</pubDate></item><item><title><![CDATA[Currently using MojoAuth — thinking about switching to FusionAuth, looking for advice]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3690">@vijaysingh1784</a> Looks like you have done a bit of research your self and made a pretty good analysis.  I am not very familiar with MojoAuth, but just to confirm a few things:</p>


<p dir="auto">FusionAuth is very customizable. You should check out things like Lambdas, Webhooks and other various options.</p>


<p dir="auto">FusionAuth can be self-hosted or can be hosted for you.</p>


<p dir="auto">FusionAuth handles <a href="https://fusionauth.io/docs/lifecycle/authenticate-users/saml" rel="nofollow ugc">SAML</a>, <a href="https://fusionauth.io/docs/lifecycle/migrate-users/scim/" rel="nofollow ugc">SCIM</a> and other various integrations.</p>


<p dir="auto">FusionAuth is very scalable and gives you great control with api acess and other mechanisms.</p>


<p dir="auto">Depending on your needs, FusionAuth can be as easy to self host as spinning up a docker image to a full blown complex K8s deployment. It should fit your needs there.</p>


<p dir="auto">While there is no direct migration guide for the product you are talking about, there are several other <a href="https://fusionauth.io/docs/lifecycle/migrate-users/" rel="nofollow ugc">migration guides</a> for you to look over that should give you an idea on how to do it.</p>


]]></description><link>https://fusionauth.io/community/forum/topic/3072/currently-using-mojoauth-thinking-about-switching-to-fusionauth-looking-for-advice</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3072/currently-using-mojoauth-thinking-about-switching-to-fusionauth-looking-for-advice</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Wed, 19 Nov 2025 06:06:17 GMT</pubDate></item><item><title><![CDATA[Issues with multi-tenant refresh token revocation and custom JWT signing]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3646">@michaelginn529</a> What do you have your "Logout behavior" set to for the application? Any other specific configuration you can share would help as well.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3060/issues-with-multi-tenant-refresh-token-revocation-and-custom-jwt-signing</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3060/issues-with-multi-tenant-refresh-token-revocation-and-custom-jwt-signing</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Wed, 24 Sep 2025 06:40:11 GMT</pubDate></item><item><title><![CDATA[How to implement mutual TLS (mTLS) with FusionAuth — best practices and real-world solutions?]]></title><description><![CDATA[<p dir="auto">I see your point about using a proxy, but I’m not fully convinced it’s the best long-term solution.</p>
<p dir="auto">The problem with putting all the responsibility on the proxy is that it creates another layer of complexity and a single point of failure. If FusionAuth is going to support enterprise-level security use cases, shouldn’t mTLS be handled natively instead of relying on external workarounds?</p>
<p dir="auto">Upvoting the issue is fine, but depending on a proxy feels more like a patch than a real fix. Curious to hear if others think this approach is sustainable, or if we should be pushing harder for first-class support directly in FusionAuth.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3053/how-to-implement-mutual-tls-mtls-with-fusionauth-best-practices-and-real-world-solutions</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3053/how-to-implement-mutual-tls-mtls-with-fusionauth-best-practices-and-real-world-solutions</guid><dc:creator><![CDATA[vinversesolutions]]></dc:creator><pubDate>Sun, 07 Sep 2025 21:44:45 GMT</pubDate></item><item><title><![CDATA[Is there away to provide error message data from a webhook via either Webhook or Event logs?]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3640">@dftz3966</a> said in <a href="/community/forum/post/8383">Is there away to provide error message data from a webhook via either Webhook or Event logs?</a>:</p>
<blockquote>
<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2507">@mark-robustelli</a> said in <a href="/community/forum/post/8361">Is there away to provide error message data from a webhook via either Webhook or Event logs?</a>:</p>
<blockquote>
<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3627">@edschlough</a> If you take a look at the <a href="https://fusionauth.io/docs/extend/events-and-webhooks/writing-a-webhook#example-code" rel="nofollow ugc">example code from the webhook documentation</a>, it shows how to return errors. Is this what you are after?</p>
</blockquote>
<p dir="auto">Thank you so much<br />
Wow! This is what I need, thank you for sharing</p>
</blockquote>
]]></description><link>https://fusionauth.io/community/forum/topic/3050/is-there-away-to-provide-error-message-data-from-a-webhook-via-either-webhook-or-event-logs</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3050/is-there-away-to-provide-error-message-data-from-a-webhook-via-either-webhook-or-event-logs</guid><dc:creator><![CDATA[stephenjsanchez]]></dc:creator><pubDate>Fri, 05 Sep 2025 15:45:07 GMT</pubDate></item><item><title><![CDATA[Migrate users with a salted hash passwords?]]></title><description><![CDATA[<p dir="auto">Thanks for your answer. I got it.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3046/migrate-users-with-a-salted-hash-passwords</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3046/migrate-users-with-a-salted-hash-passwords</guid><dc:creator><![CDATA[michaelgaffney278]]></dc:creator><pubDate>Mon, 18 Aug 2025 06:57:36 GMT</pubDate></item><item><title><![CDATA[How to track user online&#x2F;offline&#x2F;idle times in real-time dashboard &amp; reports using Kafka events from auth server]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2507">@mark-robustelli</a> Thanks for your reply, Mark. If I manage to make it, I’d love to show you how I made it and what it looks like.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3045/how-to-track-user-online-offline-idle-times-in-real-time-dashboard-reports-using-kafka-events-from-auth-server</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3045/how-to-track-user-online-offline-idle-times-in-real-time-dashboard-reports-using-kafka-events-from-auth-server</guid><dc:creator><![CDATA[llld]]></dc:creator><pubDate>Thu, 14 Aug 2025 09:51:17 GMT</pubDate></item><item><title><![CDATA[How to implement magic link login across devices]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3594">@njanaskie</a> You are correct in that magic links are designed to be a one time use. I do not know of any work around for your situation.</p>
<p dir="auto">It will be interesting to see if others chime in.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3018/how-to-implement-magic-link-login-across-devices</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3018/how-to-implement-magic-link-login-across-devices</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Wed, 06 Aug 2025 06:00:53 GMT</pubDate></item><item><title><![CDATA[How to get all locked users]]></title><description><![CDATA[<p dir="auto">Thanks for your answer. I got it.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3017/how-to-get-all-locked-users</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3017/how-to-get-all-locked-users</guid><dc:creator><![CDATA[francesgee836]]></dc:creator><pubDate>Tue, 05 Aug 2025 09:32:31 GMT</pubDate></item><item><title><![CDATA[Step-up authentication trustChallenge&#x2F;trustToken binding and validation for custom APIs]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2507">@mark-robustelli</a> hi Mark! thanks for sharing the link. Yes, I've seen that and  in general it should fit. I'm just looking for more details as my use-case is quite specific.</p>

execute a step-up auth flow before a sensitive operation (e.g. transfer of funds),
use that specific step-up auth flow to validate and then execute an specific operation (like a step-up ID binding to the operation the user started)

<p dir="auto">I need a way of validating that a specific step-up auth is bound to a specific operation. I have seen the <a href="https://fusionauth.io/community/forum/topic/1720/fusionauth-1-33-0-update-how-to-update-the-password-reset-functionality-for-users-that-have-two-factor-on">description of a use case</a> of using trustChallenge and trustToken to validate a FusionAuth change password request. This is kind of what I need to do, but on my API endpoints. I'm wondering if it's possible to validate trustToken using a trustChallenge on my own API.</p>
<p dir="auto">e.g.<br />
a. call a sensitive request triggering step-up with trustChallenge=1234<br />
b. bind operation with trustChallenge<br />
c. complete step up and receive trustToken<br />
d. validate trustToken using the trustChallenge <strong>(this is what I would need to know)</strong> and confirm/finalize sensitive operation.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/3016/step-up-authentication-trustchallenge-trusttoken-binding-and-validation-for-custom-apis</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/3016/step-up-authentication-trustchallenge-trusttoken-binding-and-validation-for-custom-apis</guid><dc:creator><![CDATA[fernando.hellwig]]></dc:creator><pubDate>Sat, 19 Jul 2025 09:02:25 GMT</pubDate></item><item><title><![CDATA[Customizing FusionAuth User Invitation Flow]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2507">@mark-robustelli</a> thanks</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2931/customizing-fusionauth-user-invitation-flow</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2931/customizing-fusionauth-user-invitation-flow</guid><dc:creator><![CDATA[davidhaven1246]]></dc:creator><pubDate>Wed, 25 Jun 2025 04:42:45 GMT</pubDate></item><item><title><![CDATA[Doubling of login records]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3547">@sergey_smirnov</a>, it is awesome that you are able to follow and create steps to replicate the issue. To be 100% I'm not sure if this is a bug or a feature request. If FusionAuth is not behaving as you would like it, I would suggest opening an <a href="https://github.com/fusionauth/fusionauth-issues/issues" rel="nofollow ugc">issue</a> on Github. Be sure to include the details and repeatable steps.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2930/doubling-of-login-records</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2930/doubling-of-login-records</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Fri, 20 Jun 2025 07:58:49 GMT</pubDate></item><item><title><![CDATA[Startup fails after Postgresql db upgrade]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/428">@atakan</a> thanks for sharing the information.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2928/startup-fails-after-postgresql-db-upgrade</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2928/startup-fails-after-postgresql-db-upgrade</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Mon, 09 Jun 2025 17:53:22 GMT</pubDate></item><item><title><![CDATA[Templates Broken in VS2019 v16.9.3 – Anyone Else?]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3537">@jobclone20</a> I just took a look at the page for the <a href="https://marketplace.visualstudio.com/items?itemName=FusionAuth.FusionAuthVSTemplates" rel="nofollow ugc">FusionAuth Visual Studio Templates.</a>  It appears they are only for Visual Studio 2022.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2927/templates-broken-in-vs2019-v16-9-3-anyone-else</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2927/templates-broken-in-vs2019-v16-9-3-anyone-else</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Mon, 09 Jun 2025 07:04:24 GMT</pubDate></item></channel></rss>