<?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[Please help! Ban expires: Never. Reason: Use of prohibited third-party software]]></title><description><![CDATA[<p dir="auto">Please help! Yesterday I played a game with my friend. Today I'm banned from FAF.<br />
When trying to run the client, I receive the error below. FAF asked me to authenticate on the FAF website, and it is giving me this error: Ban expires: Never. Reason: Use of prohibited third-party software.<br />
I didn't use any prohibited third-party software. I have no idea what prohibited third-party software I could be banned for, as I can't even think of any. The only thing I could suspect is that I created many single-player vs AI matches recently for mod testing. Also, I used a mod, Sim Speed Balancer, from the vault for 2 days. Maybe this one affected my account...</p>
<pre><code>name = "Sim Speed Balancer"
version = 21
copyright = "Licensed under the FAF Vault License. Free to use and modify."
description =
"Dynamically microadjust game speed to reduce lag and improve performance. Details at https://github.com/Lightningbulb2/FAF-sim-speed-balancer"
author = "Lightningbulb"
url = "https://github.com/Lightningbulb2/FAF-sim-speed-balancer"
uid = "sim-speed-balancer-v21"

exclusive = false
enabled = true
ui_only = false
conflicts = {}
after = {}
before = { "sim-speed-balancer-ui-v21", "CHEESEBERRY-a1e2-c4t4-scfa-ssbmod-v0200" }
</code></pre>
<p dir="auto">I'm always playing vs AI with my friend.<br />
Please help me to restore my access, as I haven't done anything wrong.<br />
Error from client:</p>
<pre><code>Client Version: 2026.7.1
com.faforever.client.login.TokenRetrievalException: {"error":"invalid_grant","error_description":"The provided authorization grant (e.g., authorization code, resource owner credentials) or refresh token is invalid, expired, revoked, does not match the redirection URI used in the authorization request, or was issued to another client. The refresh token is malformed or not valid."}
	at com.faforever.client.api.TokenRetriever.lambda$retrieveToken$1(TokenRetriever.java:179)
	at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:132)
	at reactor.core.publisher.FluxSwitchIfEmpty$SwitchIfEmptySubscriber.onNext(FluxSwitchIfEmpty.java:75)
	at reactor.core.publisher.FluxOnAssembly$OnAssemblySubscriber.onNext(FluxOnAssembly.java:540)
	at reactor.core.publisher.FluxMapFuseable$MapFuseableSubscriber.onNext(FluxMapFuseable.java:130)
	at reactor.core.publisher.FluxContextWrite$ContextWriteSubscriber.onNext(FluxContextWrite.java:109)
	at reactor.core.publisher.FluxMapFuseable$MapFuseableConditionalSubscriber.onNext(FluxMapFuseable.java:300)
	at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:338)
	at reactor.core.publisher.Operators$BaseFluxToMonoOperator.completePossiblyEmpty(Operators.java:2093)
	at reactor.core.publisher.MonoCollect$CollectSubscriber.onComplete(MonoCollect.java:144)
	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
	at reactor.core.publisher.FluxPeek$PeekSubscriber.onComplete(FluxPeek.java:263)
	at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:144)
	at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:419)
	at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:467)
	at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:521)
	at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:947)
	at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:115)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:434)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:361)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:325)
	at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:249)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355)
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1526)
	at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1384)
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1435)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:545)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:484)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:296)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1429)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:918)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:176)
	at io.netty.channel.nio.AbstractNioChannel$AbstractNioUnsafe.handle(AbstractNioChannel.java:445)
	at io.netty.channel.nio.NioIoHandler$DefaultNioRegistration.handle(NioIoHandler.java:388)
	at io.netty.channel.nio.NioIoHandler.processSelectedKey(NioIoHandler.java:596)
	at io.netty.channel.nio.NioIoHandler.processSelectedKeysPlain(NioIoHandler.java:541)
	at io.netty.channel.nio.NioIoHandler.processSelectedKeys(NioIoHandler.java:514)
	at io.netty.channel.nio.NioIoHandler.run(NioIoHandler.java:484)
	at io.netty.channel.SingleThreadIoEventLoop.runIo(SingleThreadIoEventLoop.java:225)
	at io.netty.channel.SingleThreadIoEventLoop.run(SingleThreadIoEventLoop.java:196)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:1195)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.base/java.lang.Thread.run(Thread.java:1474)
</code></pre>
]]></description><link>https://forum.faforever.com/topic/10496/please-help-ban-expires-never.-reason-use-of-prohibited-third-party-software</link><generator>RSS for Node</generator><lastBuildDate>Mon, 26 Oct 2026 09:39:49 GMT</lastBuildDate><atom:link href="https://forum.faforever.com/topic/10496.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 25 Oct 2026 09:08:25 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Please help! Ban expires: Never. Reason: Use of prohibited third-party software on Sun, 25 Oct 2026 15:56:58 GMT]]></title><description><![CDATA[<p dir="auto">Hi <a class="plugin-mentions-user plugin-mentions-a" href="/user/deribus" aria-label="Profile: deribus">@<bdi>deribus</bdi></a> . I did and have already provided the requested information. Thank you.</p>
]]></description><link>https://forum.faforever.com/post/75328</link><guid isPermaLink="true">https://forum.faforever.com/post/75328</guid><dc:creator><![CDATA[foxy_pj]]></dc:creator><pubDate>Sun, 25 Oct 2026 15:56:58 GMT</pubDate></item><item><title><![CDATA[Reply to Please help! Ban expires: Never. Reason: Use of prohibited third-party software on Sun, 25 Oct 2026 15:37:58 GMT]]></title><description><![CDATA[<p dir="auto">Hello Foxy!</p>
<p dir="auto">Are you in <a href="https://discord.gg/mXahVSKGVb" rel="nofollow ugc">our Discord</a>? We tend to handle appeals there. You can make one under <a href="https://discord.com/channels/197033481883222026/1292887978909106377" rel="nofollow ugc">#moderation-support</a></p>
]]></description><link>https://forum.faforever.com/post/75327</link><guid isPermaLink="true">https://forum.faforever.com/post/75327</guid><dc:creator><![CDATA[Deribus]]></dc:creator><pubDate>Sun, 25 Oct 2026 15:37:58 GMT</pubDate></item></channel></rss>