Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Unable to log in, Cannot run program "%USER_PROFILE%/Downloads/natives/faf-uid", No such file or directory #3027

Closed
matusnovak opened this issue Aug 27, 2023 · 2 comments
Labels

Comments

@matusnovak
Copy link

Describe the bug

When trying to log in the following error appears:

Caused by: java.io.IOException: Cannot run program "%USER_PROFILE%/Downloads/natives/faf-uid": error=2, No such file or directory

It looks like it is trying to access %USER_PROFILE% directory via an environment variable, but that is not a valid Linux environment variable, and that directory does not exist.

Is there a workaround?

To Reproduce
Steps to reproduce the behavior:

  • Download the latest client v2023.7.1 (faf_unix_2023_7_1.tar.gz)
  • Log in

Log or error message
This is my log file:

2023-08-27T13:29:41.051+02:00  INFO 18419 --- [tor-tcp-epoll-3] c.faforever.commons.lobby.FafLobbyApi    : Connected to lobby.faforever.com on port 8002
2023-08-27T13:29:41.076+02:00 ERROR 18419 --- [tor-tcp-epoll-3] reactor.core.publisher.Operators         : Operator called default onErrorDropped

reactor.core.Exceptions$ErrorCallbackNotImplemented: NotifiableException(i18nKey=uid.generate.error, i18nArgs=[])
Caused by: com.faforever.client.exception.UIDException: Cannot generate UID
        at com.faforever.client.remote.FafServerAccessor.lambda$connectAndLogIn$7(FafServerAccessor.java:127)
        at com.faforever.commons.lobby.FafLobbyClient.prepareAuthenticateOnNextSession$lambda-38(FafLobbyClient.kt:236)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:185)
        at reactor.core.publisher.MonoZip$ZipCoordinator.signal(MonoZip.java:293)
        at reactor.core.publisher.MonoZip$ZipInner.onNext(MonoZip.java:474)
        at reactor.core.publisher.MonoNext$NextSubscriber.onNext(MonoNext.java:82)
        at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:122)
        at reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:113)
        at reactor.core.publisher.FluxPublish$PublishSubscriber.drain(FluxPublish.java:491)
        at reactor.core.publisher.FluxPublish$PublishSubscriber.onNext(FluxPublish.java:268)
        at reactor.core.publisher.SinkManyUnicast.drainFused(SinkManyUnicast.java:319)
        at reactor.core.publisher.SinkManyUnicast.drain(SinkManyUnicast.java:362)
        at reactor.core.publisher.SinkManyUnicast.tryEmitNext(SinkManyUnicast.java:237)
        at reactor.core.publisher.SinkManySerialized.tryEmitNext(SinkManySerialized.java:100)
        at reactor.core.publisher.InternalManySink.emitNext(InternalManySink.java:27)
        at com.faforever.commons.lobby.FafLobbyClient.handle$lambda-43(FafLobbyClient.kt:275)
        at reactor.core.publisher.MonoCallable$MonoCallableSubscription.request(MonoCallable.java:137)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:74)
        at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:48)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4495)
        at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:427)
        at reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:544)
        at reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:985)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:79)
        at reactor.core.publisher.MonoCallable$MonoCallableSubscription.request(MonoCallable.java:156)
        at reactor.core.publisher.Operators$MultiSubscriptionSubscriber.set(Operators.java:2341)
        at reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onSubscribe(FluxOnErrorResume.java:74)
        at reactor.core.publisher.MonoCallable.subscribe(MonoCallable.java:48)
        at reactor.core.publisher.Mono.subscribe(Mono.java:4495)
        at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:427)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
        at reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:200)
        at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:129)
        at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:224)
        at reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:292)
        at reactor.netty.channel.FluxReceive.onInboundNext(FluxReceive.java:401)
        at reactor.netty.channel.ChannelOperations.onInboundNext(ChannelOperations.java:411)
        at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:114)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346)
        at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412)
        at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440)
        at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420)
        at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
        at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:800)
        at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:499)
        at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:397)
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
        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:833)
Caused by: java.io.IOException: Cannot run program "%USER_PROFILE%/Downloads/natives/faf-uid": error=2, No such file or directory
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
        at java.base/java.lang.Runtime.exec(Runtime.java:594)
        at java.base/java.lang.Runtime.exec(Runtime.java:453)
        at com.faforever.client.os.OsUtils.execAndGetOutput(OsUtils.java:23)
        at com.faforever.client.io.UidService.generate(UidService.java:20)
        at com.faforever.client.remote.FafServerAccessor.lambda$connectAndLogIn$7(FafServerAccessor.java:125)
        ... 58 common frames omitted
Caused by: java.io.IOException: error=2, No such file or directory
        at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
        at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:314)
        at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
        at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
        ... 64 common frames omitted

Expected behavior

To be able to log in successfully

Screenshots

N/A

OS

Linux 6.2.16-2-MANJARO

@matusnovak matusnovak added the bug label Aug 27, 2023
@Sheikah45
Copy link
Member

%User_Profile% is just log masking. You need to properly set the natives directory on Linux. You can refer to the community notes on wiki.faforever.com

@matusnovak
Copy link
Author

Oh I see. Thanks. I thought that was some unexpected Windows environment variable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants