Smartservice Plugin Failing

Hello, 

Am a heavy user of an onpremise appian & new to this cloud deployment for plugins.

I got my plugin approved by Appian but it fails to deploy on the cloud. Any help on this is appreciated. Attaching both the tomcat snippet & the appian-plugin.xml,

also if someone can confirm if any approved plugin jar if there are any minor tweaks do we still send it re-approval ?

Error Snippet from tomcat-stdout.log 

2025-10-30 17:23:18 SEVERE [OkHttp https://jaeger-collector.iris.appian-stratus.com/...] io.opentelemetry.sdk.internal.ThrottlingLogger.doLog Failed to export spans. Server is UNAVAILABLE. Make sure your collector is running and reachable from this network. Full error message:unavailable
2025-10-30 17:25:13,692 [Timer-5] INFO com.appiancorp.cache.DatabaseAuxiliaryCache - Removing expired entries from db cache: uiState-auxiliary
2025-10-30 17:34:06,005 [Appian Timer - 1] WARN com.appiancorp.common.ObjectSynchronizer - 1 services were missing users.
2025-10-30 17:46:05,412 [http-nio-8080-exec-844] INFO com.appiancorp.plugins.osgi.LoggingPluginFactoryDecorator - Plug-in Artifact 'occSharePointPluginV1_S 11 2.jar' SHA256 hash is 2635ff306f31eb278b3a33e78ee2d3ec04762dea8fdc79d8653fab77a13bf3af
2025-10-30 17:46:05,507 [http-nio-8080-exec-844] INFO com.appiancorp.plugins.osgi.AppianOsgiPluginFactory - Successfully retrieved component_advanced.xml document from cloud URL
2025-10-30 17:46:05,507 [http-nio-8080-exec-844] INFO com.appiancorp.plugins.osgi.AppianOsgiPluginFactory - Total number of advanced plugins :4
2025-10-30 17:46:05,512 [http-nio-8080-exec-844] ERROR com.appiancorp.plugins.osgi.AppianOsgiPluginFactory - AppianOsgiPluginFactory.reportUnloadablePlugin [/usr/local/appian/ae/_admin/plugins/occSharePointPluginV1_S 11 2.jar]
2025-10-30 17:46:05,512 [http-nio-8080-exec-844] ERROR com.appiancorp.plugins.LoggingPluginEventListener - Failed to load Plug-in 'Unknown-189610999' (Unknown-189610999) version 0.0: 'Unable to load plugin: The key is required: <components>
<smart-service category="Integration Services" class="com.occ.sharepoint.plugins.occsharepoint.SharePointChunkedUploadSmartService" icon="cloud-upload" key="OCCSharePointChunkedUpload" name="OCC SharePoint Chunked Upload">

<!-- === INPUTS === -->
<input name="tenantId" required="true" type="Text"/>
<input name="clientId" required="true" type="Text"/>
<input name="clientSecret" required="true" type="EncryptedText"/>
<input name="sitePath" required="true" type="Text"/>
<input name="driveId" required="true" type="Text"/>
<input name="documentInput" required="true" type="Document"/>
<input default="false" name="cleanupPartials" required="false" type="Boolean"/>

<!-- === OUTPUTS === -->
<output name="uploadStatus" type="Text"/>
<output name="sharePointFileUrl" type="Text"/>
<output name="sharePointItemId" type="Text"/>
<output name="totalTime" type="Text"/>
</smart-service>
</components>'
2025-10-30 17:46:05,514 [http-nio-8080-exec-844] ERROR com.appiancorp.plugins.DeployUploadedPluginReaction - Failed to deploy plugin file occSharePointPluginV1_S 11 2.jar
java.lang.IllegalStateException: Plugin was deployed but not successfully enabled

***********************************************************************************************************************************************************************************************************

Appian-plugin-xml

<?xml version="1.0" encoding="UTF-8"?>
<appian-plugin name="OCC SharePoint Chunked Upload Plugin" key="occSharePointChunkedUploadPlugin">

<plugin-info>
<description> Sharepoint Chunked Upload </description>
<version>1.1.0</version>
<application-version min="24.3" />
<vendor name="OCC Systems" url="">https://www.occsystems.com" />
</plugin-info>

<components>
<smart-service
name="OCC SharePoint Chunked Upload"
key="OCCSharePointChunkedUpload"
category="Integration Services"
icon="cloud-upload"
class="com.occ.sharepoint.plugins.occsharepoint.SharePointChunkedUploadSmartService">

<!-- === INPUTS === -->
<input name="tenantId" type="Text" required="true" />
<input name="clientId" type="Text" required="true" />
<input name="clientSecret" type="EncryptedText" required="true" />
<input name="sitePath" type="Text" required="true" />
<input name="driveId" type="Text" required="true" />
<input name="documentInput" type="Document" required="true" />
<input name="cleanupPartials" type="Boolean" required="false" default="false" />

<!-- === OUTPUTS === -->
<output name="uploadStatus" type="Text" />
<output name="sharePointFileUrl" type="Text" />
<output name="sharePointItemId" type="Text" />
<output name="totalTime" type="Text" />
</smart-service>
</components>
</appian-plugin>

Regards

ANK

  Discussion posts and replies are publicly visible

Parents
  • 0
    Certified Lead Developer

    Seems like your Appian-plugin-xml is not valid. The "components" start and end tags are not required, you can remove it. Which explains why its unable to find the "key" tag.

    Also its interesting to see inputs and outputs defined in the xml this way. Usually we don't do this. The deployer determines input/output based on the getter/setter in your class file and input annotations.

Reply
  • 0
    Certified Lead Developer

    Seems like your Appian-plugin-xml is not valid. The "components" start and end tags are not required, you can remove it. Which explains why its unable to find the "key" tag.

    Also its interesting to see inputs and outputs defined in the xml this way. Usually we don't do this. The deployer determines input/output based on the getter/setter in your class file and input annotations.

Children
No Data