-1

I'm using the "On New or Update" source of the Mule 4 SFTP Connector, to process files from an SFTP server directory. The process works fine, however while reading the last file the SFTP connector throws an error as shown below and the file remains in directory waiting next schedule time to be picked up and the same thing will happen for the last file of other new set of files.

Any thoughts on how to fix this issue?

ERROR:

11:20:45.315     05/04/2022     Worker-0     [MuleRuntime].uber.27: [sftp-demo-app].prcsACKFiles-Error-SuccessFlow.CPU_INTENSIVE @1648077b     ERROR
event:c458bc90-cbbd-11ec-85e2-06a565d43154 
********************************************************************************
Message               : "org.mule.weave.v2.module.reader.ReaderParsingException: org.mule.runtime.api.exception.MuleRuntimeException - Exception was found trying to retrieve the contents of file /home/messages/file_8ddb7674.json
org.mule.runtime.api.exception.MuleRuntimeException: Exception was found trying to retrieve the contents of file /home/messages/file_8ddb7674.json
    at org.mule.extension.sftp.internal.connection.SftpClient.exception(SftpClient.java:427)
    at org.mule.extension.sftp.internal.connection.SftpClient.exception(SftpClient.java:423)
    at org.mule.extension.sftp.internal.connection.SftpClient.getFileContent(SftpClient.java:349)
    at org.mule.extension.sftp.internal.connection.SftpFileSystem.retrieveFileContent(SftpFileSystem.java:117)
    at org.mule.extension.sftp.internal.SftpInputStream$SftpFileInputStreamSupplier.getContentInputStream(SftpInputStream.java:111)
    at org.mule.extension.sftp.internal.SftpInputStream$SftpFileInputStreamSupplier.getContentInputStream(SftpInputStream.java:93)
    at org.mule.extension.file.common.api.AbstractConnectedFileInputStreamSupplier.getContentInputStream(AbstractConnectedFileInputStreamSupplier.java:81)
    at org.mule.extension.file.common.api.AbstractFileInputStreamSupplier.get(AbstractFileInputStreamSupplier.java:65)
    at org.mule.extension.file.common.api.AbstractFileInputStreamSupplier.get(AbstractFileInputStreamSupplier.java:33)
    at org.mule.extension.file.common.api.stream.LazyStreamSupplier.lambda$new$1(LazyStreamSupplier.java:29)
    at org.mule.extension.file.common.api.stream.LazyStreamSupplier.get(LazyStreamSupplier.java:42)
    at org.mule.extension.file.common.api.stream.AbstractNonFinalizableFileInputStream.lambda$createLazyStream$0(AbstractNonFinalizableFileInputStream.java:48)
    at $java.io.InputStream$$EnhancerByCGLIB$$55e4687e.read(<generated>)
    at org.apache.commons.io.input.ProxyInputStream.read(ProxyInputStream.java:102)
    at org.mule.runtime.core.internal.streaming.bytes.AbstractInputStreamBuffer.consumeStream(AbstractInputStreamBuffer.java:111)
    at com.mulesoft.mule.runtime.core.internal.streaming.bytes.FileStoreInputStreamBuffer.consumeForwardData(FileStoreInputStreamBuffer.java:239)
    at com.mulesoft.mule.runtime.core.internal.streaming.bytes.FileStoreInputStreamBuffer.consumeForwardData(FileStoreInputStreamBuffer.java:202)
    at com.mulesoft.mule.runtime.core.internal.streaming.bytes.FileStoreInputStreamBuffer.doGet(FileStoreInputStreamBuffer.java:125)
    at org.mule.runtime.core.internal.streaming.bytes.AbstractInputStreamBuffer.get(AbstractInputStreamBuffer.java:93)
    at org.mule.runtime.core.internal.streaming.bytes.BufferedCursorStream.assureDataInLocalBuffer(BufferedCursorStream.java:126)
    at org.mule.runtime.core.internal.streaming.bytes.BufferedCursorStream.doRead(BufferedCursorStream.java:101)
    at org.mule.runtime.core.internal.streaming.bytes.AbstractCursorStream.read(AbstractCursorStream.java:124)
    at org.mule.runtime.core.internal.streaming.bytes.BufferedCursorStream.read(BufferedCursorStream.java:26)
    at java.io.InputStream.read(InputStream.java:101)
    at org.mule.runtime.core.internal.streaming.bytes.ManagedCursorStreamDecorator.read(ManagedCursorStreamDecorator.java:96)
    at org.mule.weave.v2.el.SeekableCursorStream.read(MuleTypedValue.scala:306)
    at org.mule.weave.v2.module.reader.UTF8StreamSourceReader.handleBOM(SeekableStreamSourceReader.scala:179)
    at org.mule.weave.v2.module.reader.UTF8StreamSourceReader.readAscii(SeekableStreamSourceReader.scala:163)
    at org.mule.weave.v2.module.json.reader.JsonTokenizer.$init$(JsonTokenizer.scala:21)
    at org.mule.weave.v2.module.json.reader.indexed.IndexedJsonTokenizer.<init>(IndexedJsonTokenizer.scala:15)
    at org.mule.weave.v2.module.json.reader.indexed.IndexedJsonParser.parser(IndexedJsonParser.scala:17)
    at org.mule.weave.v2.module.json.reader.JsonReader.readValue(JsonReader.scala:40)
    at org.mule.weave.v2.module.json.reader.JsonReader.doRead(JsonReader.scala:30)
    at org.mule.weave.v2.module.reader.Reader.read(Reader.scala:35)
    at org.mule.weave.v2.module.reader.Reader.read$(Reader.scala:33)
    at org.mule.weave.v2.module.json.reader.JsonReader.read(JsonReader.scala:20)
    at org.mule.weave.v2.el.MuleTypedValue.value(MuleTypedValue.scala:147)
    at org.mule.weave.v2.model.values.wrappers.DelegateValue.valueType(DelegateValue.scala:17)
    at org.mule.weave.v2.model.values.wrappers.DelegateValue.valueType$(DelegateValue.scala:16)
    at org.mule.weave.v2.el.MuleTypedValue.valueType(MuleTypedValue.scala:177)
    at org.mule.weave.v2.model.types.ObjectType$.accepts(Type.scala:1068)
    Caused by: org.mule.extension.sftp.api.SftpConnectionException: Error occurred while trying to connect to host
    ... 112 more
Caused by: org.mule.runtime.api.connection.ConnectionException: 
    at org.mule.extension.sftp.api.SftpConnectionException.<init>(SftpConnectionException.java:38)
    ... 112 more
Caused by: org.mule.runtime.api.connection.ConnectionException: 
    ... 112 more
Caused by: 4: 
    at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:1540)
    at com.jcraft.jsch.ChannelSftp.get(ChannelSftp.java:1290)
    at org.mule.extension.sftp.internal.connection.SftpClient.getFileContent(SftpClient.java:347)
    ... 110 more
Caused by: java.io.IOException: Pipe closed
aled
  • 21,330
  • 3
  • 27
  • 34
james11
  • 55
  • 6

1 Answers1

0

Error Pipe closed in SFTP indicates a communication error that the SFTP connector can not resolve, so the operation fails. I don't believe that there is anything that you can do about that. You might try to test a newer version of the connector if you are using an older one, just in case.

aled
  • 21,330
  • 3
  • 27
  • 34
  • Do you think adding connection strategy will resolve the issue? – james11 May 04 '22 at 19:40
  • In my experience it didn't help, but I think I was working with an older version of Mule. You may want to test with latest versions to see if it makes a difference. – aled May 04 '22 at 19:47
  • im using the latest version of SFTP Connector. i ll try to configure connection strategy and see. thank you for your input – james11 May 04 '22 at 19:55