<?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[Popular Topics]]></title><description><![CDATA[A list of topics that are sorted by post count]]></description><link>https://fusionauth.io/community/forum/popular/alltime</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 09:34:29 GMT</lastBuildDate><atom:link href="https://fusionauth.io/community/forum/popular/alltime.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 20 Dec 2020 16:43:16 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[workflow for self registration]]></title><description><![CDATA[<p dir="auto">Hard to know exactly what's going on.</p>
<p dir="auto">I would try creating another tenant and seeing if the same SMTP settings fail. Then I'd try standing up a version with the very latest FusionAuth version and seeing if you see the same behavior.</p>
<p dir="auto">Also, do you have the same tenant smtp settings? That is under the "advanced" tab, then "smtp settings".</p>
]]></description><link>https://fusionauth.io/community/forum/topic/682/workflow-for-self-registration</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/682/workflow-for-self-registration</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Sun, 20 Dec 2020 16:43:16 GMT</pubDate></item><item><title><![CDATA[Can&#x27;t get by Maintenance Mode]]></title><description><![CDATA[<p dir="auto">I rolled back and installed an elastisearch container. Added the SEARCH_TYPE in the fusionauth deployment and mapped a service to the same RDS DB and it stood up without an issue. Something screwy in the way Fusionauth is connecting to either Postgre or MySQL.</p>
<p dir="auto">I'm going to have to talk to sales as I want to enable the features temporarily to use it as a POC. Also so I can justify the cost per month for actual support beyond forums.</p>
<p dir="auto">Thank you for your time.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/135/can-t-get-by-maintenance-mode</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/135/can-t-get-by-maintenance-mode</guid><dc:creator><![CDATA[ian 0]]></dc:creator><pubDate>Sat, 30 May 2020 22:47:08 GMT</pubDate></item><item><title><![CDATA[Meme thread]]></title><description><![CDATA[<p dir="auto">h74frvvu1owb1.png</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2221/meme-thread</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2221/meme-thread</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Tue, 25 Oct 2022 18:52:09 GMT</pubDate></item><item><title><![CDATA[invalid_redirect_uri]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/279">@richb201</a></p>
<blockquote>
<p dir="auto">The documentation says that this is optional. But not in my case.</p>
</blockquote>
<p dir="auto">Can you elaborate on where you found this in the doc?</p>
<blockquote>
<p dir="auto">The error should say missing "X-FusionAuth-TenantId"</p>
</blockquote>
<p dir="auto">Can you elaborate on this?</p>
<blockquote>
<p dir="auto">When I get back the "code" do I need to manually convert it to a token, or is this done automatically?</p>
</blockquote>
<p dir="auto">You may want to review <a href="https://fusionauth.io/learn/expert-advice/oauth/modern-guide-to-oauth/#logging-in" rel="nofollow ugc">our OAuth guide</a>.  Using a OAuth2 flow, it is common to have two separate endpoints (authorize and token) to obtain access.  The "code" is returned from FusionAuth and is used (in conjunction with a few other possible factors) to obtain an access token (in our typescript client, this is the client.exchangeOAuthCodeForAccessTokenUsingPKCE function)</p>
<p dir="auto">We do have a few tutorials as well, that show this in action (<a href="https://fusionauth.io/docs/v1/tech/5-minute-setup-guide/" rel="nofollow ugc">nodeJS tutorial being one of them</a>)</p>
<p dir="auto">Lastly, for general housekeeping's sake, this thread is getting a bit long, with a few related posts clumped together.  For future questions, if the question is unrelated to the posts immediately above, it might be good to open a new thread.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/972/invalid_redirect_uri</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/972/invalid_redirect_uri</guid><dc:creator><![CDATA[joshua]]></dc:creator><pubDate>Fri, 23 Apr 2021 03:51:38 GMT</pubDate></item><item><title><![CDATA[Identity Provider with no email?]]></title><description><![CDATA[<p dir="auto">It looks like setting the email address in a lambda works for Facebook now (as of at least 1.41.2):</p>
  if (!facebookUser.email) {
    user.email = facebookUser.id + '@no-email.facebook.com';
  }

1/10/2023 10:10:33 PM Z Linking strategy [LinkByEmail]
1/10/2023 10:10:33 PM Z Resolved email to []
1/10/2023 10:10:33 PM Z Resolved username to [null]
1/10/2023 10:10:33 PM Z Resolved unique Id to [115587478085870]
1/10/2023 10:10:33 PM Z Identity provider returned a unique Id [115587478085870].
1/10/2023 10:10:33 PM Z A link has not yet been established for this external user.
1/10/2023 10:10:33 PM Z The user with the email address [] does not exist.
1/10/2023 10:10:33 PM Z Invoke configured lambda with Id [787cd34e-1618-4cd9-8156-936734cfe368]
1/10/2023 10:10:33 PM Z The lambda set or modified the initially resolved email. Email is now [115587478085870@no-email.facebook.com]
1/10/2023 10:10:33 PM Z Creating user: 
1/10/2023 10:10:33 PM Z User is not registered for application with Id [e0da3f10-7efa-4a6b-95f8-fbf4894884b5]
1/10/2023 10:10:33 PM Z User has successfully been reconciled and logged into FusionAuth.
1/10/2023 10:10:33 PM Z Authentication type: FACEBOOK
1/10/2023 10:10:33 PM Z Authentication state: Authenticated

]]></description><link>https://fusionauth.io/community/forum/topic/304/identity-provider-with-no-email</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/304/identity-provider-with-no-email</guid><dc:creator><![CDATA[trevorr]]></dc:creator><pubDate>Mon, 17 Aug 2020 08:26:14 GMT</pubDate></item><item><title><![CDATA[Login with Magic Link?]]></title><description><![CDATA[<blockquote>
<p dir="auto">But if I put these in the application, won't this be a security problem?</p>
</blockquote>
<p dir="auto">If you put them in a javascript app, yes. But if they are in the php application only, then it'll be like a database password. Not really a security issue.</p>
<p dir="auto">You could also inject them as an environment variable or pull from a secrets manager; however you manage your database credentials, I'd suggest doing the same with the client id/secret.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/436/login-with-magic-link</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/436/login-with-magic-link</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Mon, 28 Sep 2020 19:30:55 GMT</pubDate></item><item><title><![CDATA[Blazor WASM auth]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2022">@cody</a> Thank you for sharing!</p>
]]></description><link>https://fusionauth.io/community/forum/topic/547/blazor-wasm-auth</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/547/blazor-wasm-auth</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Wed, 11 Nov 2020 15:36:40 GMT</pubDate></item><item><title><![CDATA[fusioAuth install is damaged?]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/56">@maciej-wisniowski</a> That was done when we found that there was a bug in</p>
<p dir="auto">#FROM fusionauth/fusionauth-app:1.19.4</p>
<p dir="auto">and we replaced it with:</p>
<p dir="auto">FROM fusionauth/fusionauth-app:1.19.7</p>
]]></description><link>https://fusionauth.io/community/forum/topic/815/fusioauth-install-is-damaged</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/815/fusioauth-install-is-damaged</guid><dc:creator><![CDATA[richb201]]></dc:creator><pubDate>Mon, 15 Feb 2021 18:33:57 GMT</pubDate></item><item><title><![CDATA[Proxy Configuration Warning help]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2777">@ronn316</a> Thank you so much for sharing with the community and I'm glad you got it working for you!</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2582/proxy-configuration-warning-help</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2582/proxy-configuration-warning-help</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Sat, 16 Dec 2023 13:14:45 GMT</pubDate></item><item><title><![CDATA[First Log In Screen]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2776">@mike123</a> Can you please try with a capital "S" vs lowercase "s?"</p>
php -S localhost:9012 -t public

]]></description><link>https://fusionauth.io/community/forum/topic/2581/first-log-in-screen</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2581/first-log-in-screen</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Fri, 15 Dec 2023 22:02:30 GMT</pubDate></item><item><title><![CDATA[How to setup OAuth properly]]></title><description><![CDATA[<p dir="auto">It's so easy to mix up those IDs when you're moving between FusionAuth and the Google console! It’s definitely one of those things that’s right under your nose but impossible to see until someone points it out. Glad to hear you got the callback working - that 'invalid_client' error can be a real headache when everything else looks correct.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2905/how-to-setup-oauth-properly</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2905/how-to-setup-oauth-properly</guid><dc:creator><![CDATA[sjames05569]]></dc:creator><pubDate>Wed, 02 Apr 2025 23:06:36 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[How do I call a Google API or retrieve the Google credentials?]]></title><description><![CDATA[<p dir="auto">Thank you for sharing.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2569/how-do-i-call-a-google-api-or-retrieve-the-google-credentials</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2569/how-do-i-call-a-google-api-or-retrieve-the-google-credentials</guid><dc:creator><![CDATA[helen]]></dc:creator><pubDate>Wed, 29 Nov 2023 23:04:53 GMT</pubDate></item><item><title><![CDATA[SAML SSO for Mattermost using FusionAuth]]></title><description><![CDATA[<p dir="auto">thanks , I will do just that</p>
<p dir="auto">Best Regards,</p>
]]></description><link>https://fusionauth.io/community/forum/topic/310/saml-sso-for-mattermost-using-fusionauth</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/310/saml-sso-for-mattermost-using-fusionauth</guid><dc:creator><![CDATA[misterjoj]]></dc:creator><pubDate>Thu, 20 Aug 2020 18:15:09 GMT</pubDate></item><item><title><![CDATA[Performance issues even with a 8 Core + 32 gigs.]]></title><description><![CDATA[<p dir="auto">Thanks <a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/303">@sjswami</a> , this duplicate ids issue is now resolved in 1.19.7. Appreciate you letting us know about it: <a href="https://github.com/FusionAuth/fusionauth-issues/issues/890" rel="nofollow ugc">https://github.com/FusionAuth/fusionauth-issues/issues/890</a></p>
]]></description><link>https://fusionauth.io/community/forum/topic/370/performance-issues-even-with-a-8-core-32-gigs</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/370/performance-issues-even-with-a-8-core-32-gigs</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Mon, 07 Sep 2020 16:29:43 GMT</pubDate></item><item><title><![CDATA[Error after updating the password]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/56">@maciej-wisniowski</a></p>
<p dir="auto">Glad that you are able to figure it out.  I am not sure if that qualifies as a bug, but definitely something to be aware of and might be worth calling out in our documentation.</p>
<p dir="auto">I believe that you should have email templates after a kickstart (at least the default ones).  I can do some more testing to see if that same thing happens to me when I kickstart.</p>
<p dir="auto">Thanks,<br />
Josh</p>
]]></description><link>https://fusionauth.io/community/forum/topic/1317/error-after-updating-the-password</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/1317/error-after-updating-the-password</guid><dc:creator><![CDATA[joshua]]></dc:creator><pubDate>Fri, 15 Oct 2021 19:37:34 GMT</pubDate></item><item><title><![CDATA[SSL certificate settings when hosted on Windows]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/3364">@Scot</a> Woo-hoo, glad you got rollin'!</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2841/ssl-certificate-settings-when-hosted-on-windows</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2841/ssl-certificate-settings-when-hosted-on-windows</guid><dc:creator><![CDATA[mark.robustelli]]></dc:creator><pubDate>Tue, 07 Jan 2025 20:34:10 GMT</pubDate></item><item><title><![CDATA[Editing user data in the UI]]></title><description><![CDATA[<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2680">@brad</a> sounds super frustrating.</p>
<p dir="auto">I'll send you a message.</p>
]]></description><link>https://fusionauth.io/community/forum/topic/659/editing-user-data-in-the-ui</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/659/editing-user-data-in-the-ui</guid><dc:creator><![CDATA[dan]]></dc:creator><pubDate>Fri, 11 Dec 2020 18:23:13 GMT</pubDate></item><item><title><![CDATA[3rd Party Authentication]]></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> said in <a href="/community/forum/post/6429">3rd Party Authentication</a>:</p>
<blockquote>
<p dir="auto"><a class="mention plugin-mentions-user plugin-mentions-a" href="https://fusionauth.io/community/forum/uid/2545">@it-contracts</a> Can you please share the OAuth settings you have for your application?  In the Fusion Auth Admin UI select Applications.  Select Edit or view for your application. Share the OAuth and JWT settings.  Be sure to remove any sensitive information before posting here.</p>
</blockquote>
<p dir="auto">I did not make any settings in JWT, so there is nothig there.</p>
<p dir="auto">In the OAUTH section here's what I have:</p>

Client Id -  Id generated by fusionAuth.
Client secret - Secret generated by FusionAuth.
Client Authentication - Set to Required
PKCE - Set to Not Required.
Generate refresh tokens - Checked
Debug enabled - Checked (No idea if this does anything  in the Cloud configuration).
URL validation - Set to Exact Match
Authorized redirect URLs -<a href="http://localhost:8080/" rel="nofollow ugc">http://localhost:8080/</a><strong>MyAppName</strong>/FusionAuthLogin
Authorized request origin URLs - Not Set
Logout URL - <a href="http://localhost:8080/" rel="nofollow ugc">http://localhost:8080/</a><strong>MyAppName</strong>/FusionAuthLogout
Logout behavior - Set To All applications
Enabled grants - Checked "Authorization Code" and "Refresh Token"
Require Registration - Checked

<p dir="auto">That's it.<br />
Thank you Mark<br />
Rudy</p>
]]></description><link>https://fusionauth.io/community/forum/topic/2447/3rd-party-authentication</link><guid isPermaLink="true">https://fusionauth.io/community/forum/topic/2447/3rd-party-authentication</guid><dc:creator><![CDATA[it-contracts]]></dc:creator><pubDate>Mon, 17 Jul 2023 18:25:34 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></channel></rss>