How to fix "https://repo.packagist.org/packages.json does not contain valid Json"?

56,046

Solution 1

same problem here, since php updated to 7.2.17. On a centos 7 with php 7.2.16 composer run just fine... Rollback to 7.2.16 is for now the only solution found...

Edit : Seems to be a symfony flex issue : https://github.com/symfony/flex/issues/484

Solution 2

Could also be IPv6 related, if your provider/system is configured for IPv6 but has no valid IPv6 route out to the internet.

This happened to me, and doing sysctl -w net.ipv6.conf.all.disable_ipv6=1 (as root), then trying composer again fixed the issue.

To permanently apply it, add the rule to /etc/sysctl.conf (or wherever your OS preferred is)

Solution 3

I had the same problem. After days of searching, I found a solution. It seems a PHP problem. Try to comment a line of curl extension on php.ini. I am using php version 5.6.

extension=php_curl.dll 

Type ; before the extension name, at least it will be like this:

;extension=php_curl.dll
Share:
56,046
StacOlem
Author by

StacOlem

Updated on July 09, 2022

Comments

  • StacOlem
    StacOlem almost 2 years

    I've an issue with composer running on a vagrantbox (Centos 7), which started to just suddenly happen.

    I've already tried manually running the command/solution mentioned on the link below but to no avail.

    (To clarify, i'm using vagrant not docker, but it was the closest question i found to my situation. Most of the information i found are related to composer.json not being valid, but here is packagist.org/packages.json which, is currently valid)

    Composer not working in docker container: "https://packagist.org/packages.json" does not contain valid JSON

    Here are the details of the issue.

    While running composer update on terminal i get:

     composer update
    
    
      [Seld\JsonLint\ParsingException]
      "https://repo.packagist.org/packages.json" does not contain valid JSON
      Parse error on line 1:
    
      ^
      Expected one of: 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '['
    
    

    And when running composer install also on terminal every package returns this:

    Failed to download psr/cache from dist: "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8" 
    appears broken, and returned an empty 200 response
        Now trying to download from source
    

    When running composer config --global repo.packagist composer packagist.org the results are now

    composer update
    Loading composer repositories with package information
    
    
      [Composer\Downloader\TransportException]
      Your configuration does not allow connections to http://repo.packagist.org/packages.json. See https://getcomposer.o
      rg/doc/06-config.md#secure-http for details.
    

    Any ideas why this started to happen, how can i fix it?

  • StacOlem
    StacOlem about 5 years
    Thanks for the headsup! I'm on php 7.3 and as mentioned on that issue, it happened on that version too. I'm marking this question as resolved with your comment since it is now fixed in relation to the github issue you mention and its corresponding commit. Just reinstall your packages! (Note: Might have to delete vendor folder and composer.lock for a fresh install)
  • Deele
    Deele almost 5 years
    This answer inspired me. I got repo.packagist.org:443; Connection refused and repo.packagist.org:80; Connection refused errors, even 2001:41d0:801:1000::27d: Network is unreachable errors. Then I read your answer, found out we have PHP 7.1.29. I ran the composer diagnose via PHP 7.2.18 and 5.6.40, and it worked! This mystical issue finally solved!
  • atymic
    atymic over 4 years
    That doesn't actually fix the problem, it just hides it.
  • StacOlem
    StacOlem over 4 years
    This is disabling a security feature, can't be considered a real solution to the original problem
  • Nico Haase
    Nico Haase almost 3 years
    Please do not duplicate existing answer, unless you want to add some new insights