calling waitForRender() in postProcessRenderedPhotos generates an error ("An unknown error occurred. This photo was not rendered") when called in a "Publish" setting. The same code works just fine in "Export" setting. The same code used to run just fine in the past for several years, this issue is new, a regression.
I also was able to reproduce the issue using the creatorfilter.lrdevplugin sample plug-in that is supplied with the SDK.
To reproduce:
1. Add the plugin in "Plugin Manager"
2. Add the plugin (named "Publish Bug Demo") to an export and export - all should be well
3. Add the plugin to a publish and publish - "An unknown error occurred. This photo was not rendered" is presented for each image
Here's the plugin code (2 files):
--[[----------------------------------------------------------------------------
DemoFilterProvider.lua
------------------------------------------------------------------------------]]
-- Lightroom SDK
local LrLogger = import 'LrLogger'
local myLogger = LrLogger( 'libraryLogger' )
myLogger:enable( "print" ) -- or "logfile"
--============================================================================--
local DemoFilterProvider = {}
function DemoFilterProvider.sectionForFilterInDialog(f, p)
return {
title = 'Demo Plugin',
f:row {
place = "overlapping",
f:static_text {
width = leftSideWidth,
alignment = "center",
size = 24,
title = "Demo Plugin"
}
}
}
end
-------------------------------------------------------------------------------
function DemoFilterProvider.postProcessRenderedPhotos( functionContext, filterContext )
local renditionOptions = {
plugin = _PLUGIN,
renditionsToSatisfy = filterContext.renditionsToSatisfy,
filterSettings = function( renditionToSatisfy, exportSettings )
end,
}
for sourceRendition, renditionToSatisfy in filterContext:renditions(renditionOptions) do
local success, pathOrMessage = sourceRendition:waitForRender()
if success then
-- perform some magic
end
end
end
function DemoFilterProvider.shouldRenderPhoto( exportSettings, photo )
return true
end
-------------------------------------------------------------------------------
return DemoFilterProvider
--[[----------------------------------------------------------------------------
Info.lua
--------------------------------------------------------------------------------
------------------------------------------------------------------------------]]
return {
LrSdkVersion = 3.0,
LrSdkMinimumVersion = 2.0,
LrPluginName = "Publish Bug Demo",
LrToolkitIdentifier = 'com.yourcompany.yourproduct.lrpi',
LrExportFilterProvider = {
title = "Publish Bug Demo",
file = 'DemoFilterProvider.lua',
},
LrPluginInfoUrl = "http://www.yourcompany.com",
VERSION = { major=1, minor=2, revision=3, build=4, },
}