No publish icon in photoshop shotgrid panel

I am using a test config. In shotgun panel in photoshop, usually a publish icon appears. Looking at log, it shows one among other lines an error

2023-06-27 06:06:11,032 [17004 ERROR sgtk.env.project.tk-photoshopcc] App configuration Error for tk-multi-publish2 (configured in environment ‘C:\code\config\config\env\shot_step.yml’). It will not be loaded: Invalid configuration setting ‘publish_plugins’ for tk-multi-publish2: The specified hook file ‘C:\code\config\config\hooks\T.py’ does not exist.

No where in the config is this line mentioned.

‘C:\code\config\config\hooks\T.py’

Only change to config is in

> C:\code\config\config\env\includes\settings\tk-multi-publish2.yml

.
# shot_step
settings.tk-multi-publish2.photoshop.shot_step:
 # collector: "{self}/collector.py:{engine}/tk-multi-publish2/basic/collector.py"
  collector: "T:/plugin/pipeline/app_store/tk-multi-publish2-mod/hooks/collector.py"

And their is a need to change in this app as I am taking a step to change review image format from jpg to exr.

Question is two fold

why is publish icon not appearing ?
Not able to understand the design of shotgrid. Where does it find the above T.py script ?

Answering this will help in better appreciating the way shotgrid is designed and ask less question in this context. Example, how to interpret this line. What is self and engine and what are they pointing to. ?

collector: “{self}/collector.py:{engine}/tk-multi-publish2/basic/collector.py”

Hey, the icon is not showing because the app can not be loaded due to an error in the configuration. It references the not existing file. Inside config, you should not use absolut paths. You should use global constants.
{self} links to the app distributive path. In case of tk-multi-publish it will be something like
C:\Users\your_user\AppData\Roaming\Shotgun\bundle_cache\app_store\tk-multi-publish2\v2.6.3
{config} links to your current config location. In your case ‘C:\code\config\config'
{engine} links to the engine distributive. For example
C:\Users\your_user\AppData\Roaming\Shotgun\bundle_cache\app_store\tk-3dsmax\v1.2.4

All those links are interpreted dynamically during the config load and depending on the user’s system paths.

In your case to find an error, just search through your tk-multi-publish.py file this string C:\code\config\config\hooks\T.py it is there

I recommend watching this tutorial

1 Like

thank you @grover_gol. I need to modify “{self}/upload_version.py” in tk-multi-publish2, say. {self} you say is a link to app distributive path. It points to
C:\Users\your_user\AppData\Roaming\Shotgun\bundle_cache\app_store\tk-multi-publish2\v2.6.3

It should now point to

C:\Users\your_user\AppData\Roaming\Shotgun\bundle_cache\app_store*tk-multi-publish2-mod*\v2.6.3

where tk-multi-publish2-mod is copy of tk-multi-publish2.

How to make {self} point to new location ?

This is not how you should alter configs.

I suggest you read up a little on how to properly administer toolkit configurations to save yourself from the pipeline breaking at a later point.

1 Like

self always points to the directory of the app. In your case it’s tk-multi-piblish2. If you want to modify the app itself you must “take over” the app. If you want to modify only the hook, you must copy the original hook to your configuration hooks folder and reference the config to it.
For example, I use the original app, I do not take it over. But I override hooks.
my app_locations.yml has this:

apps.tk-multi-publish2.location:
  type: app_store
  name: tk-multi-publish2
  version: v2.6.3

my tk-multi-publish2.yml has this:

# ---- Nuke

# asset step
settings.tk-multi-publish2.nuke.asset_step:
  pre_publish: "{config}/tk-multi-publish2/pre_publish.py"
  collector: "{config}/tk-multi-publish2/collector.py:{config}/tk-multi-publish2/nuke/collector.py"
  collector_settings:
      Work Template: nuke_asset_work
      Render Area Template: nuke_asset_render_area
  publish_plugins:
  - name: Publish to Shotgun
    hook: "{self}/publish_file.py"
    settings: {}
  - name: Upload for review
    hook: "{self}/upload_version.py:{config}/tk-multi-publish2/upload_version.py"
    settings: {}

the collector file is in my configuration folder for the developer:
C:\work\Programming\tk-config\hooks\tk-multi-publish2\collector.py

In general, please, look into this tutorial on publishing

2 Likes

Thanks @grover_gol , I was trying to find a link to that video :smiley:

1 Like

please share the link to the reading material

There used to be dedicated pages about config and such. But then Autodesk removed that platform, and all the links that I had are gone.
What you have now is only the developer page https://developer.shotgridsoftware.com/
with some topics like toolkit for example ShotGrid pipeline toolkit core platform, v0.20.19 — tk-core v0.20.19 documentation
But the previous forum with Q and A is gone, unfortunately.