Magento Enterprise Cloud Edition bug: «The file "/composer.json" doesn't exist»

As a guess, the message could be generated by the Symfony Config Component.
It is used by Magento 2.

The method Symfony\Component\Config\Resource\FileResource::__construct() has the following implementation:

So it definitely can generate the «The file “/composer.json” doesn’t exist».
Can you log this exception and get it backtrace?
I am unable to do it myself, because you said your production filesystem is read-only, and, as I understand, the message is generated by the production instance.

Oh, I am wrong, it is not the Symfony Config Component, because its message ends on «does not exist», not on «doesn’t exist»

All these messages (and the error «The file “/composer.json” doesn’t exist» message) are generated by an unknown black-box closed source script/program:

Building application ‘mymagento’ (runtime type: php:7.0, tree ID: 4be8741)
Generating runtime configuration.

Moving the application to the output directory
W: Overriding path robots.txt that already exists in destination.
Prewarming composer cache.
Pre-downloaded 2 packages referenced in composer.lock

These strings are absent in your beta and production websites source code.
So the only way to investigate the case and this unknown black-box closed source program requirements is to contact the program author - Magento Enterprise team.
Ask them:

  • Where is exactly the «The file “/composer.json” doesn’t exist» message generated?
  • Why is the message generated? What are the hidden requirements about such «composer.json» files?

I used the following commands to look for the messages:

grep -rnw . -e "Moving the application"
find . -name '*.*' -print | xargs grep "Moving the application"

They all return nothing.

        
        
                                                             
          [Magento\Framework\Exception\FileSystemException]  
          The file "/composer.json" doesn't exist            
                                                             
        
        
        module:enable [-f|--force] [--all] [-c|--clear-static-content] [--magento-init-params="..."] [module1] ... [moduleN]
        
        
        
        
                                                                         
          [RuntimeException]                                             
          Command php ./bin/magento module:enable --all returned code 1  
                                                                         
        
        
        magento-cloud:build

it is this command during the process where it fails:
php ./bin/magento magento-cloud:build

Yet again:

All these messages (and the error «The file “/composer.json” doesn’t exist» message) are generated by an unknown black-box closed source script/program

If you want to prove opposite, then provide THE EXACT source code where these messages are generated.

./Event/Collection.php: * If event doesn’t exist creates new one and returns it
./App/MaintenanceMode.php: * It is going to work much faster in 99% of cases: the isOn() will return false whenever file doesn’t exist.
./App/State/CleanupFiles.php: $messages[] = “The directory ‘{$dirPath}’ doesn’t exist - skipping cleanup”;
./Search/Request/Builder.php: throw new NonExistingRequestNameException(new Phrase(“Request name ‘%1’ doesn’t exist.”, [$requestName]));
./Search/Test/Unit/Request/BuilderTest.php: * @expectedExceptionMessage Request name ‘rn’ doesn’t exist.
./View/TemplateEngineFactory.php: * @throws \InvalidArgumentException If template engine doesn’t exist
./File/Mime.php: throw new \InvalidArgumentException(“File ‘$file’ doesn’t exist”);
./File/Test/Unit/MimeTest.php: * @expectedExceptionMessage File ‘nonexistent.file’ doesn’t exist
./Data/Structure.php: * @throws LocalizedException if doesn’t exist
./System/Ftp.php: throw new \Exception(“Local file doesn’t exist: {$local}”);
./Profiler/Driver/Standard/Stat.php: * @throws \InvalidArgumentException if timer doesn’t exist
./Profiler/Driver/Standard/Stat.php: * @throws \InvalidArgumentException if timer doesn’t exist
./Profiler/Driver/Standard/Output/Factory.php: sprintf(“Cannot create standard driver output, class “%s” doesn’t exist.”, $class)
./Profiler/Driver/Factory.php: sprintf(“Cannot create profiler driver, class “%s” doesn’t exist.”, $class)
./Profiler/Test/Unit/Driver/Standard/StatTest.php: * @expectedExceptionMessage Timer “unknown_timer” doesn’t exist.
./Profiler/Test/Unit/Driver/Standard/StatTest.php: * @expectedExceptionMessage Timer “unknown_timer” doesn’t exist.
./Profiler/Test/Unit/Driver/Standard/StatTest.php: * @expectedMessage Timer “foo” doesn’t exist.

./magento2-base/setup/src/Magento/Setup/Model/Installer.php: $this->log->log("The file '{$absolutePath}' doesn't exist - skipping cleanup");

These messages are unrelated to the error message.

Local file doesn’t exist: {$local}

The word «Local» is absent in the error message.

The file ‘{$absolutePath}’ doesn’t exist - skipping cleanup

The «- skipping cleanup» suffix is absent in the error message.

does it have anything to do with this :

PHP Fatal error:  Uncaught RuntimeException: ObjectManager isn't initialized in /var/www/beta.pumpunderwear.com/web/2e/vendor/magento/framework/App/ObjectManager.php:31
Stack trace:
#0 /var/www/beta.pumpunderwear.com/web/2e/vendor/mage2pro/core/Core/lib/om.php(37): Magento\Framework\App\ObjectManager::getInstance()
#1 /var/www/beta.pumpunderwear.com/web/2e/vendor/mage2pro/core/Core/lib/om.php(29): df_om()
#2 /var/www/beta.pumpunderwear.com/web/2e/vendor/mage2pro/core/Core/lib/cache.php(250): {closure}('Magento\\Framewo...')
#3 /var/www/beta.pumpunderwear.com/web/2e/vendor/mage2pro/core/Core/lib/om.php(29): dfcf(Object(Closure), Array)
#4 /var/www/beta.pumpunderwear.com/web/2e/vendor/mage2pro/core/Core/lib/module.php(37): df_o('Magento\\Framewo...')
#5 /var/www/beta.pumpunderwear.com/web/2e/vendor/mage2pro/core/Core/lib/module.php(174): df_module_dir('Df_Core')
#6 /var/www/beta.pumpunderwear.com/web/2e/vendor/mage2pro/core/Core/lib/composer.php(34): df_module_path('Df_Core')
#7 /var/www/beta.pumpunderwear.com/web/2e/vendor/mage in /var/www/beta.pumpunderwear.com/web/2e/vendor/magento/framework/App/ObjectManager.php on line 31
PHP Stack trace:
PHP   1. {main}() /var/www/beta.pumpunderwear.com/web/2e/bin/magento:0
PHP   2. require() /var/www/beta.pumpunderwear.com/web/2e/bin/magento:14
PHP   3. require_once() /var/www/beta.pumpunderwear.com/web/2e/app/bootstrap.php:30
PHP   4. include() /var/www/beta.pumpunderwear.com/web/2e/app/autoload.php:21
PHP   5. ComposerAutoloaderInitc835b588ff1adeacac61af3874973a0f::getLoader() /var/www/beta.pumpunderwear.com/web/2e/vendor/autoload.php:7
PHP   6. composerRequirec835b588ff1adeacac61af3874973a0f() /var/www/beta.pumpunderwear.com/web/2e/vendor/composer/autoload_real.php:61

No.

So what am I supposed to do with this? Only solution offered so far by magento is remove module … is that where we leave this ? When I do remove stripe the Magento cloud deploy Process does in fact work as they say …

Learn the answer here: Magento Enterprise Cloud Edition bug: «The file "/composer.json" doesn't exist»
If you do not understand it, re-read it again.
Why is it so hard to understand what I write from the first attempt?!?

It’s not hard to understand, its just not a real answer. Magento says this:

Vidal Yesterday at 00:34
Hello Sam,

Unfortunately, the creator of the extension must determine the cause of the issue between Magento and the extension. The integration of any 3rd party application is the responsibility of the SI and/or the creator of the extension.

Best,
Vidal

Meanwhile we can’t even deploy Magento to the Cloud without removing Stripe our pay processor. And neither you or Magento seem to care.

All my extensions are 100% Open Source and published on GitHub: https://github.com/mage2pro
So they can be easily explored and debugged by other developers and customers.
Magento Enterprise Cloud is a closed source and undocumented (!) service with (as you said) 2 weeks delay in customer support.
I do not know what is the cause of your issue, and I do not have any ability to debug it because of lack of the Cloud’s source code and specification.
I recommend you just leave Magento Cloud and use your own server, which you can control and debug.

Luckily, I was able to reproduce a similar issue and investigate it:

With a high probability it is the same issue as yours, and I have created a workaround for it the 2.9.9 version of the mage2pro/core package.

Just upgrade your Stripe extension and try to redeploy your website to production again.

Hi

Great that you found that. I updated it but unfortunately it still gives the same error when I try to deploy it :frowning:

Which version of the mage2pro/core package is installed on update?

mage2pro/core 2.9.11 Mage2.PRO core package.
mage2pro/stripe 1.10.0 The «Stripe» payment extension for Magento 2.