FileBasedProject.PublishProject() succeeds but Studio indicates publish failed

We are having intermittent problems using the FIleBasedProject creation API. For some of the created projects we are unable to open in Studio. The error information states:

"The project with ID {0} can not be opened becasue it was not successfully published to the server"

However, the result of the PublishProject() call has a status of PublicationStatus.Published

Why are the projects not openable?

Parents
  • Are there any errors in the Exectution log (or other log files) of GroupShare from the time when the project was published?

  • Found timeouts in the executions log, but I would expect this to fail, not be returned as Published.
  • Some extra information I got from Chris, posting it here so that SDL Dev team can see it too:

    ====================
    We have created a program using the FileBasedProject API to grab 1 or more files to create a project. We have at most 10 parallel processes, segmented by language, processing a single set of files at a time. The above code snippet is the last step in the processing which publishes the project to the server. We have matched log entries to projects failing to open in Studio to see that the status was Published, even though the error indicates the pubish was unsuccesful.

    This program has been running several months since its last modification in both our test and production environments. I don't know how much load testing happened as part of the UAT for the 2017 upgrade. To my knowledge, the problems at this high frequency started as of the upgrade in our production environment. This could have happened before but so seldom it was not noticeable.
    ====================
  • Thanks , this is important because I don't think the filebased API is the way to go for this. Studio was not built for processing multiple projects at the same time. It would be more sensible to use the REST API in GroupShare to support this kind of approach.

    Why is Studio being used for this instead of GroupShare?

    Paul Filkin | RWS Group

    ________________________
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub

  • Unknown said:
    It would be more sensible to use the REST API in GroupShare to support this kind of approach.

    Why is Studio being used for this instead of GroupShare?

    It's my understanding that

    a) their application was created to work with GS2015 where REST API wasn't available, I believe

    b) with GS2015 it worked

    So these "it's not designed for this" statements sound rather alibistic than like a real arguments :-\

  • I don't think there is any need for this kind of language Evzen. I don't know what version they are using but most of our GroupShare customers have a support contract so my thought process would be this:

    1. Fact: Studio is not designed to mass handle projects via the API
    2. Fact: our customers were forced to try and use the filebased API in the past for this because there was no alternative
    3. Fact: as a supported customer GS 2017 is freely available to you
    4. Fact: GS 2017 has a much improved REST API that supports the creation of projects and is designed for mass handling of projects
    5. Fact: this customer has already upgraded to 2017 and has tested in UAT for 10 months with low volumes
    6. Fact: the problem they have encountered only started when they went into production

    So in my opinion continuing to try and make something work with a sub optimal solution even if it did work in the past (and I don't know if it did or not) seems a less than satisfactory way to go forward.

    Paul Filkin | RWS Group

    ________________________
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub

  • Unknown said:
    6. Fact: the problem they have encountered only started when they went into production

    > This program has been running several months since its last modification in both our test and production environments.

    From this I actually understand that the program worked in production as well... against GS2015. The problems started only after upgrade to GS2017.
    That's how I read the story.

    The point I'm trying to make - and I believe it's the original poster's point too - is that there is no reason why things which worked before (although not officially supported... but without real technical reason to not work if known caveats are carefully treated) should not still work.

    Plus, there is another aspect - statements like "you should use new API" are not easily done, especially in production. Such statements are usually made by managers who have no idea about the real world... who believe that Rome can be built by simply sending email, or so :-\

    That's why people naturally start asking why things which worked before suddenly stop working without a reason.

Reply
  • Unknown said:
    6. Fact: the problem they have encountered only started when they went into production

    > This program has been running several months since its last modification in both our test and production environments.

    From this I actually understand that the program worked in production as well... against GS2015. The problems started only after upgrade to GS2017.
    That's how I read the story.

    The point I'm trying to make - and I believe it's the original poster's point too - is that there is no reason why things which worked before (although not officially supported... but without real technical reason to not work if known caveats are carefully treated) should not still work.

    Plus, there is another aspect - statements like "you should use new API" are not easily done, especially in production. Such statements are usually made by managers who have no idea about the real world... who believe that Rome can be built by simply sending email, or so :-\

    That's why people naturally start asking why things which worked before suddenly stop working without a reason.

Children
  • Unknown said:
    The point I'm trying to make - and I believe it's the original poster's point too - is that there is no reason why things which worked before (although not officially supported... but without real technical reason to not work if known caveats are carefully treated) should not still work.

    Perhaps you can make your point without being so antagonistic.  You've said before I should not take things personally but it's very difficult sometimes with the comments you make.  You either don't have a very good command of English and use words you don't really understand, or you are just deliberately hostile. I am an optimist so I hope it's not the latter and that you'll improve over time.

    There is a very good reason why things may not work when we move from one version to another.  The file-based solution is not designed to handle heavy volumes with concurrent processing.  It would have been a workaround at best until we provided a similar solution that could be used directly on GroupShare.  Any changes that would impact the performance of project creation in Studio could affect the performance of solutions built around the API.

    Unknown said:
    Plus, there is another aspect - statements like "you should use new API" are not easily done, especially in production.

    Really!!

    Paul Filkin | RWS Group

    ________________________
    Design your own training!

    You've done the courses and still need to go a little further, or still not clear? 
    Tell us what you need in our Community Solutions Hub

  • This system has been running for more than 3 years through multiple upgrades of both Studio and GroupShare with minimal changes.

    Not sure what you mean by "The file-based solution is not designed to handle heavy volumes with concurrent processing" but I don't think our usage is that heavy a load. This is a free standing program (not a Studio plug-in), which leverages the FileBasedProject APIs. There are at most 10 instances independently processing one project at a time. We typically process on the order of 100-200 projects a day. This seems like it would be a lighter load than a department full of translation analysts.

    Up through GroupShare 2015, we did not see the necessary capabilities available in the REST API. Given that our system was working fine, we did not investigate how far the REST API had advanced to see if it would now cover our needs in GS2017.

    At the beginning of the year, we were running Studio 2015 against GS 2015 with no issues. We later upgraded Studio to 2107 and rebuilt the program against the new version with no code changes and no problems running the system. We recently upgrade from GS2105 to GS 2107 and since the upgrade have seen a high failure rate.

    The first question I have is whether there is any known change that might have caused this impact? While this may not be the best solution model, it was working fine.

    The second issue is more frustrating and more critical. As stated in the question, the API returns a successful result on the Publish call, however GroupShare reports that the project failed to publish successfully. If we are doing something wrong, then by all means go ahead and fail. But it's not (to me) acceptable to return a success when the action failed. If I was using mismatched versions, I could see a disconnect between client code and server code, but this problem started to happen when I got them in sync.