StacOlem
StacOlem

Reputation: 173

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

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?

Upvotes: 14

Views: 79111

Answers (10)

avpaderno
avpaderno

Reputation: 29749

In my case, I just had to install the php-curl package, as suggested by composer diagnose.

Upvotes: 0

Monther Saife
Monther Saife

Reputation: 1

Simply Just check out your internet and it well be ok

Upvotes: -1

Tithira
Tithira

Reputation: 662

I ran a composer global require laravel/installer simply upgrading laravel/installer according to Laravel https://laravel.com/docs/9.x/installation#the-laravel-installer and the error was resolved.

Upvotes: 0

Daniel_Ranjbar
Daniel_Ranjbar

Reputation: 120

My solution: connect to a vpn before running the command!

For me basically the problem was because my IP was from Iran. Connected to a vpn and it worked perfectly.

Upvotes: -2

val
val

Reputation: 54

I had the same issue try to install symfony twig bundle. I ran :

set http_proxy=
set https_proxy=
composer require symfony/twig-bundle 

and it worked

Upvotes: 0

Renan Roseno
Renan Roseno

Reputation: 21

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

Upvotes: 1

Austin
Austin

Reputation: 326

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)

Upvotes: 14

Adele Abiola Idris
Adele Abiola Idris

Reputation: 21

I bypassed the problem by redirecting the output to /dev/null.

composer require symfony/orm-pack > /dev/null

Upvotes: -7

Elangovan
Elangovan

Reputation: 3558

it will works when we run this command in console

composer config disable-tls true

Upvotes: -4

Bastien Baudry
Bastien Baudry

Reputation: 76

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

Upvotes: 6

Related Questions