java.lang.NullPointerException - Jenkinsfile

Hi,
I have a question:
this is my Jenkinsfile:

  agent { label 'macos' }
//   options {
//     buildDiscarder(logRotator(numToKeepStr: '5'))
//   }
  stages {
    stage('Tooling versions') {
      steps {
        sh '''
        echo 'hh'
          // docker --version
          // docker compose version
        '''
      }
    }
  }
}

this is the log of my agent:

SSHLauncher{host='e9c8fee1053c.mylabserver.com', port=22, credentialsId='bcd', jvmOptions='', javaPath='', prefixStartSlaveCmd='', suffixStartSlaveCmd='', launchTimeoutSeconds=60, maxNumRetries=10, retryWaitTime=15, sshHostKeyVerificationStrategy=hudson.plugins.sshslaves.verifiers.KnownHostsFileKeyVerificationStrategy, tcpNoDelay=true, trackCredentials=true}
[08/24/22 22:57:51] [SSH] Opening SSH connection to e9c8fee1053c.mylabserver.com:22.
Searching for e9c8fee1053c.mylabserver.com in /home/cdrcun2/.ssh/known_hosts
Searching for e9c8fee1053c.mylabserver.com:22 in /home/cdrcun2/.ssh/known_hosts
[08/24/22 22:57:51] [SSH] SSH host key matches key in Known Hosts file. Connection will be allowed.
[08/24/22 22:57:52] [SSH] Authentication successful.
[08/24/22 22:57:52] [SSH] The remote user's environment is:
BASH=/usr/bin/bash
BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASHRCSOURCED=Y
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_EXECUTION_STRING=set
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="4" [2]="20" [3]="1" [4]="release" [5]="x86_64-redhat-linux-gnu")
BASH_VERSION='4.4.20(1)-release'
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1001/bus
DIRSTACK=()
EUID=1001
GROUPS=()
HOME=/home/cloud_user
HOSTNAME=e9c8fee1053c.mylabserver.com
HOSTTYPE=x86_64
IFS=$' \t\n'
LANG=en_US.UTF-8
LESSOPEN='||/usr/bin/lesspipe.sh %s'
LOGNAME=cloud_user
MACHTYPE=x86_64-redhat-linux-gnu
OPTERR=1
OPTIND=1
OSTYPE=linux-gnu
PATH=/home/cloud_user/.local/bin:/home/cloud_user/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
PIPESTATUS=([0]="0")
PPID=10921
PS4='+ '
PWD=/home/cloud_user
SELINUX_LEVEL_REQUESTED=
SELINUX_ROLE_REQUESTED=
SELINUX_USE_CURRENT_RANGE=
SHELL=/bin/bash
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=1
SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass
SSH_CLIENT='77.127.26.216 52182 22'
SSH_CONNECTION='77.127.26.216 52182 172.31.99.186 22'
TC_LIB_DIR=/usr/lib64/tc
TERM=dumb
UID=1001
USER=cloud_user
XDG_DATA_DIRS=/home/cloud_user/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
XDG_RUNTIME_DIR=/run/user/1001
XDG_SESSION_ID=9
_=PATH
new_dirs=/home/cloud_user/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share
which_declare='declare -f'
which_opt=-f
which_shell=bash
command_not_found_handle () 
{ 
    local runcnf=1;
    local retval=127;
    [[ $- == *"i"* ]] || runcnf=0;
    [[ ! -S /run/dbus/system_bus_socket ]] && runcnf=0;
    [[ ! -x '/usr/libexec/packagekitd' ]] && runcnf=0;
    [[ -n ${COMP_CWORD-} ]] && runcnf=0;
    [[ ! -x '/usr/libexec/pk-command-not-found' ]] && runcnf=0;
    if [ $runcnf -eq 1 ]; then
        '/usr/libexec/pk-command-not-found' "$@";
        retval=$?;
    else
        if [[ -n "${BASH_VERSION-}" ]]; then
            printf 'bash: %scommand not found\n' "${1:+$1: }" 1>&2;
        fi;
    fi;
    return $retval
}
gawklibpath_append () 
{ 
    [ -z "$AWKLIBPATH" ] && AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'`;
    export AWKLIBPATH="$AWKLIBPATH:$*"
}
gawklibpath_default () 
{ 
    unset AWKLIBPATH;
    export AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'`
}
gawklibpath_prepend () 
{ 
    [ -z "$AWKLIBPATH" ] && AWKLIBPATH=`gawk 'BEGIN {print ENVIRON["AWKLIBPATH"]}'`;
    export AWKLIBPATH="$*:$AWKLIBPATH"
}
gawkpath_append () 
{ 
    [ -z "$AWKPATH" ] && AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'`;
    export AWKPATH="$AWKPATH:$*"
}
gawkpath_default () 
{ 
    unset AWKPATH;
    export AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'`
}
gawkpath_prepend () 
{ 
    [ -z "$AWKPATH" ] && AWKPATH=`gawk 'BEGIN {print ENVIRON["AWKPATH"]}'`;
    export AWKPATH="$*:$AWKPATH"
}
which () 
{ 
    ( alias;
    eval ${which_declare} ) | /usr/bin/which --tty-only --read-alias --read-functions --show-tilde --show-dot "$@"
}
Checking Java version in the PATH
openjdk version "11.0.13" 2021-10-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.13+8-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.13+8-LTS, mixed mode, sharing)
[08/24/22 22:57:53] [SSH] Checking java version of C:\Users\User\bcdmacosbcdcdbcd/jdk/bin/java
Couldn't figure out the Java version of C:\Users\User\bcdmacosbcdcdbcd/jdk/bin/java
bash: C:UsersUserbcdmacosbcdcdbcd/jdk/bin/java: No such file or directory

[08/24/22 22:57:53] [SSH] Checking java version of java
[08/24/22 22:57:54] [SSH] java -version returned 11.0.13.
[08/24/22 22:57:54] [SSH] Starting sftp client.
[08/24/22 22:57:54] [SSH] Copying latest remoting.jar...
Source agent hash is 57B61B8D18FF31FC98C9789304365B57. Installed agent hash is 57B61B8D18FF31FC98C9789304365B57
Verified agent jar. No update is necessary.
Expanded the channel window size to 4MB
[08/24/22 22:58:13] [SSH] Starting agent process: cd "C:\Users\User\bcdmacosbcdcdbcd" && java  -jar remoting.jar -workDir C:\Users\User\bcdmacosbcdcdbcd -jar-cache C:\Users\User\bcdmacosbcdcdbcd/remoting/jarCache
Aug 24, 2022 7:58:14 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir
INFO: Using C:UsersUserbcdmacosbcdcdbcd/remoting as a remoting work directory
Aug 24, 2022 7:58:14 PM org.jenkinsci.remoting.engine.WorkDirManager setupLogging
INFO: Both error and output logs will be printed to C:UsersUserbcdmacosbcdcdbcd/remoting
<===[JENKINS REMOTING CAPACITY]===>channel started
Remoting version: 4.14
Launcher: SSHLauncher
Communication Protocol: Standard in/out
This is a Unix agent
WARNING: C:\Users\User\bcdmacosbcdcdbcd looks suspiciously like Windows path. Maybe you meant C:/Users/User/bcdmacosbcdcdbcd?
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by jenkins.slaves.StandardOutputSwapper$ChannelSwapper to constructor java.io.FileDescriptor(int)
WARNING: Please consider reporting this to the maintainers of jenkins.slaves.StandardOutputSwapper$ChannelSwapper
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Evacuated stdout
Agent successfully connected and online

and this is the problem (this is the log of my Jenkinsfile):

Obtained Jenkinsfile from git https://github.com/Rachel33118301/bcd-pipeline-java-web-app.git
[Pipeline] Start of Pipeline
[Pipeline] node
Running on bcdmacosbcd in C:\Users\User\bcdmacosbcdcdbcd\workspace\jeva-web-app-docker-compose-pipeline
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Declarative: Checkout SCM)
[Pipeline] checkout
Selected Git installation does not exist. Using Default
The recommended git tool is: NONE
No credentials specified
Fetching changes from the remote Git repository
Checking out Revision 244f32bfc94029aabc269bc871cf655315ebaeef (refs/remotes/origin/main)
 > git rev-parse --resolve-git-dir /home/cloud_user/C:\Users\User\bcdmacosbcdcdbcd/C:\Users\User\bcdmacosbcdcdbcd\workspace\jeva-web-app-docker-compose-pipeline/.git # timeout=10
 > git config remote.origin.url https://github.com/Rachel33118301/bcd-pipeline-java-web-app.git # timeout=10
Fetching upstream changes from https://github.com/Rachel33118301/bcd-pipeline-java-web-app.git
 > git --version # timeout=10
 > git --version # 'git version 2.27.0'
 > git fetch --tags --force --progress -- https://github.com/Rachel33118301/bcd-pipeline-java-web-app.git +refs/heads/*:refs/remotes/origin/* # timeout=10
 > git rev-parse refs/remotes/origin/main^{commit} # timeout=10
 > git config core.sparsecheckout # timeout=10
 > git checkout -f 244f32bfc94029aabc269bc871cf655315ebaeef # timeout=10
Commit message: "mm"
 > git rev-list --no-walk 2349a74e09a47fca114d18ca02ba985c861310c5 # timeout=10
[Pipeline] }
[Pipeline] // stage
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Tooling versions)
[Pipeline] sh
[Pipeline] }
[Pipeline] // stage
[Pipeline] }
[Pipeline] // withEnv
[Pipeline] }
[Pipeline] // node
[Pipeline] End of Pipeline
Also:   hudson.remoting.Channel$CallSiteStackTrace: Remote call to bcdmacosbcd
		at hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1784)
		at hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:356)
		at hudson.remoting.Channel.call(Channel.java:1000)
		at hudson.FilePath.act(FilePath.java:1194)
		at hudson.FilePath.act(FilePath.java:1183)
		at hudson.FilePath.write(FilePath.java:2430)
		at org.jenkinsci.plugins.durabletask.BourneShellScript.launchWithCookie(BourneShellScript.java:142)
		at org.jenkinsci.plugins.durabletask.FileMonitoringTask.launch(FileMonitoringTask.java:132)
		at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.start(DurableTaskStep.java:324)
		at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:322)
		at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:196)
		at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:124)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
		at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.base/java.lang.reflect.Method.invoke(Method.java:566)
		at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
		at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
		at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1225)
		at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1034)
		at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:41)
		at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
		at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
		at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:163)
		at org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23)
		at org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:158)
		at org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:161)
		at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:165)
		at org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:135)
		at com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17)
		at com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:86)
		at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:113)
		at com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:83)
		at jdk.internal.reflect.GeneratedMethodAccessor346.invoke(Unknown Source)
		at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
		at java.base/java.lang.reflect.Method.invoke(Method.java:566)
		at com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72)
		at com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21)
		at com.cloudbees.groovy.cps.Next.step(Next.java:83)
		at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174)
		at com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163)
		at org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:136)
		at org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:275)
		at com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163)
		at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$001(SandboxContinuable.java:18)
		at org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:51)
		at org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:187)
		at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:420)
		at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$400(CpsThreadGroup.java:95)
		at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:330)
		at org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:294)
		at org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:67)
		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
		at hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:139)
		at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
		at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:68)
		at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
		at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
		at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
		at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
		at java.base/java.lang.Thread.run(Thread.java:829)
java.lang.NullPointerException
	at hudson.FilePath.mkdirs(FilePath.java:3623)
	at hudson.FilePath.access$1100(FilePath.java:212)
	at hudson.FilePath$Write.invoke(FilePath.java:2445)
	at hudson.FilePath$Write.invoke(FilePath.java:2433)
	at hudson.FilePath$FileCallableWrapper.call(FilePath.java:3502)
	at hudson.remoting.UserRequest.perform(UserRequest.java:211)
	at hudson.remoting.UserRequest.perform(UserRequest.java:54)
	at hudson.remoting.Request$2.run(Request.java:376)
	at hudson.remoting.InterceptingExecutorService.lambda$wrap$0(InterceptingExecutorService.java:78)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at java.base/java.lang.Thread.run(Thread.java:829)
Finished: FAILURE

If anyone know what the problem is (with: java.lang.NullPointerException)
Itll help me a lot.
Thanks

no one have a answer???

It seems that you are running on a Linux agent but the “Remote root directory” of your Node Configuration is set to a Windows path.
Your log file contains paths like: /home/cloud_user/C:\Users\User\bcdmacosbcdcdbcd/C:\Users\User\bcdmacosbcdcdbcd\workspace\jeva-web-app-docker-compose-pipeline/.git